fix: trigger slider by keyboard arrows (fixes #72)

This commit is contained in:
Aylur
2023-08-31 23:31:39 +02:00
parent 3023967ca8
commit 3d2171c850
+13 -3
View File
@@ -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