mirror of
https://github.com/zoriya/ags.git
synced 2026-06-08 20:35:40 +00:00
fix: trigger slider by keyboard arrows (fixes #72)
This commit is contained in:
+13
-3
@@ -1,7 +1,7 @@
|
||||
import GObject from 'gi://GObject';
|
||||
import Gtk from 'gi://Gtk?version=3.0';
|
||||
import { runCmd } from '../utils.js';
|
||||
import { EventButton, EventScroll } from 'gi-types/gdk3';
|
||||
import { EventButton, EventScroll, EventKey } from 'gi-types/gdk3';
|
||||
import { Command } from './shared.js';
|
||||
|
||||
interface Params {
|
||||
@@ -53,7 +53,7 @@ export default class AgsSlider extends Gtk.Scale {
|
||||
this.onChange = onChange;
|
||||
|
||||
this.adjustment.connect('notify::value', ({ value }, event) => {
|
||||
if (!this._dragging)
|
||||
if (!this.dragging)
|
||||
return;
|
||||
|
||||
typeof this.onChange === 'function'
|
||||
@@ -67,7 +67,7 @@ export default class AgsSlider extends Gtk.Scale {
|
||||
|
||||
get value() { return this.adjustment.value; }
|
||||
set value(value: number) {
|
||||
if (this._dragging)
|
||||
if (this.dragging)
|
||||
return;
|
||||
|
||||
this.adjustment.value = value;
|
||||
@@ -105,6 +105,16 @@ export default class AgsSlider extends Gtk.Scale {
|
||||
return super.vfunc_button_press_event(event);
|
||||
}
|
||||
|
||||
vfunc_key_press_event(event: EventKey): boolean {
|
||||
this.dragging = true;
|
||||
return super.vfunc_key_press_event(event);
|
||||
}
|
||||
|
||||
vfunc_key_release_event(event: EventKey): boolean {
|
||||
this.dragging = false;
|
||||
return super.vfunc_key_release_event(event);
|
||||
}
|
||||
|
||||
vfunc_scroll_event(event: EventScroll): boolean {
|
||||
this.dragging = true;
|
||||
event.delta_y > 0
|
||||
|
||||
Reference in New Issue
Block a user