@@ -15,29 +15,17 @@ const secondary_button = workbench.builder.get_object("secondary_button");
15
15
stack_picture_1 . file = Gio . File . new_for_uri ( workbench . resolve ( "image1.png" ) ) ;
16
16
stack_picture_2 . file = Gio . File . new_for_uri ( workbench . resolve ( "image2.png" ) ) ;
17
17
18
- let ctrl_pressed = false ;
19
-
20
18
// Key controller to detect when the Ctrl key is pressed and released
21
19
const key_controller = new Gtk . EventControllerKey ( ) ;
22
20
window . add_controller ( key_controller ) ;
23
21
key_controller . connect ( "key-pressed" , ( _self , keyval , _keycode , _state ) => {
24
22
if ( keyval === Gdk . KEY_Control_L || keyval === Gdk . KEY_Control_R ) {
25
- ctrl_pressed = true ;
23
+ ctrl_button . add_css_class ( "suggested-action" ) ;
26
24
}
27
25
} ) ;
28
26
29
27
key_controller . connect ( "key-released" , ( _self , keyval , _keycode , _state ) => {
30
28
if ( keyval === Gdk . KEY_Control_L || keyval === Gdk . KEY_Control_R ) {
31
- ctrl_pressed = false ;
32
- }
33
- } ) ;
34
-
35
- ctrl_button . connect ( "clicked" , ( ) => {
36
- if ( ctrl_pressed ) {
37
- ctrl_button . label = _ ( "Click to Deactivate" ) ;
38
- ctrl_button . add_css_class ( "suggested-action" ) ;
39
- } else {
40
- ctrl_button . label = _ ( "Ctrl + Click to Activate" ) ;
41
29
ctrl_button . remove_css_class ( "suggested-action" ) ;
42
30
}
43
31
} ) ;
@@ -48,33 +36,41 @@ const gesture_click = new Gtk.GestureClick({ button: 0 });
48
36
window . add_controller ( gesture_click ) ;
49
37
50
38
gesture_click . connect ( "pressed" , ( _self , _n_press , _x , _y ) => {
51
- switch ( gesture_click . get_current_button ( ) ) {
39
+ let css_class = "suggested-action" ;
40
+ if ( _self . get_current_event_state ( ) & Gdk . ModifierType . CONTROL_MASK ) {
41
+ css_class = "destructive-action" ;
42
+ }
43
+
44
+ switch ( _self . get_current_button ( ) ) {
52
45
case Gdk . BUTTON_PRIMARY :
53
- primary_button . add_css_class ( "suggested-action" ) ;
46
+ primary_button . add_css_class ( css_class ) ;
54
47
break ;
55
48
56
49
case Gdk . BUTTON_MIDDLE :
57
- middle_button . add_css_class ( "suggested-action" ) ;
50
+ middle_button . add_css_class ( css_class ) ;
58
51
break ;
59
52
60
53
case Gdk . BUTTON_SECONDARY :
61
- secondary_button . add_css_class ( "suggested-action" ) ;
54
+ secondary_button . add_css_class ( css_class ) ;
62
55
break ;
63
56
}
64
57
} ) ;
65
58
66
59
gesture_click . connect ( "released" , ( _self , _n_press , _x , _y ) => {
67
- switch ( gesture_click . get_current_button ( ) ) {
60
+ switch ( _self . get_current_button ( ) ) {
68
61
case Gdk . BUTTON_PRIMARY :
69
62
primary_button . remove_css_class ( "suggested-action" ) ;
63
+ primary_button . remove_css_class ( "destructive-action" ) ;
70
64
break ;
71
65
72
66
case Gdk . BUTTON_MIDDLE :
73
67
middle_button . remove_css_class ( "suggested-action" ) ;
68
+ middle_button . remove_css_class ( "destructive-action" ) ;
74
69
break ;
75
70
76
71
case Gdk . BUTTON_SECONDARY :
77
72
secondary_button . remove_css_class ( "suggested-action" ) ;
73
+ secondary_button . remove_css_class ( "destructive-action" ) ;
78
74
break ;
79
75
}
80
76
} ) ;
0 commit comments