@@ -15,29 +15,17 @@ const secondary_button = workbench.builder.get_object("secondary_button");
1515stack_picture_1 . file = Gio . File . new_for_uri ( workbench . resolve ( "image1.png" ) ) ;
1616stack_picture_2 . file = Gio . File . new_for_uri ( workbench . resolve ( "image2.png" ) ) ;
1717
18- let ctrl_pressed = false ;
19-
2018// Key controller to detect when the Ctrl key is pressed and released
2119const key_controller = new Gtk . EventControllerKey ( ) ;
2220window . add_controller ( key_controller ) ;
2321key_controller . connect ( "key-pressed" , ( _self , keyval , _keycode , _state ) => {
2422 if ( keyval === Gdk . KEY_Control_L || keyval === Gdk . KEY_Control_R ) {
25- ctrl_pressed = true ;
23+ ctrl_button . add_css_class ( "suggested-action" ) ;
2624 }
2725} ) ;
2826
2927key_controller . connect ( "key-released" , ( _self , keyval , _keycode , _state ) => {
3028 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" ) ;
4129 ctrl_button . remove_css_class ( "suggested-action" ) ;
4230 }
4331} ) ;
@@ -48,33 +36,41 @@ const gesture_click = new Gtk.GestureClick({ button: 0 });
4836window . add_controller ( gesture_click ) ;
4937
5038gesture_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 ( ) ) {
5245 case Gdk . BUTTON_PRIMARY :
53- primary_button . add_css_class ( "suggested-action" ) ;
46+ primary_button . add_css_class ( css_class ) ;
5447 break ;
5548
5649 case Gdk . BUTTON_MIDDLE :
57- middle_button . add_css_class ( "suggested-action" ) ;
50+ middle_button . add_css_class ( css_class ) ;
5851 break ;
5952
6053 case Gdk . BUTTON_SECONDARY :
61- secondary_button . add_css_class ( "suggested-action" ) ;
54+ secondary_button . add_css_class ( css_class ) ;
6255 break ;
6356 }
6457} ) ;
6558
6659gesture_click . connect ( "released" , ( _self , _n_press , _x , _y ) => {
67- switch ( gesture_click . get_current_button ( ) ) {
60+ switch ( _self . get_current_button ( ) ) {
6861 case Gdk . BUTTON_PRIMARY :
6962 primary_button . remove_css_class ( "suggested-action" ) ;
63+ primary_button . remove_css_class ( "destructive-action" ) ;
7064 break ;
7165
7266 case Gdk . BUTTON_MIDDLE :
7367 middle_button . remove_css_class ( "suggested-action" ) ;
68+ middle_button . remove_css_class ( "destructive-action" ) ;
7469 break ;
7570
7671 case Gdk . BUTTON_SECONDARY :
7772 secondary_button . remove_css_class ( "suggested-action" ) ;
73+ secondary_button . remove_css_class ( "destructive-action" ) ;
7874 break ;
7975 }
8076} ) ;
0 commit comments