@@ -891,49 +891,53 @@ def create_status_icon(self):
891891 _ ("Middle click to toggle the manager" )))
892892 self .status_icon .set_visible (True )
893893 self .status_icon .connect ('button-press-event' , self .on_tray_button_pressed )
894- self .status_icon .connect ('button-release-event' , self .on_tray_button_released )
894+
895+ self .rebuild_tray_context_menu ()
895896
896897 def on_tray_button_pressed (self , icon , x , y , button , time , panel_position ):
897898 if button == 1 :
898899 self .activate_notes (time )
899900 elif button == 2 :
900901 self .toggle_manager (time )
901902
902- def on_tray_button_released (self , icon , x , y , button , time , panel_position ):
903- if button == 3 :
904- menu = Gtk .Menu ()
905- item = Gtk .MenuItem (label = _ ("New Note" ))
906- item .connect ('activate' , self .new_note )
907- menu .append (item )
903+ def rebuild_tray_context_menu (self ):
904+ if self .status_icon is None :
905+ return
908906
909- item = Gtk .MenuItem (label = _ ("Manage Notes" ))
910- item .connect ('activate' , self .open_manager )
911- menu .append (item )
907+ self .context_menu = Gtk .Menu ()
908+ item = Gtk .MenuItem (label = _ ("New Note" ))
909+ item .connect ('activate' , self .new_note )
910+ self .context_menu .append (item )
912911
913- menu .append (Gtk .SeparatorMenuItem ())
912+ item = Gtk .MenuItem (label = _ ("Manage Notes" ))
913+ item .connect ('activate' , self .open_manager )
914+ self .context_menu .append (item )
914915
915- for group in self .file_handler .get_note_group_names ():
916- item = Gtk .RadioMenuItem (label = group )
917- if group == self .settings .get_string ('active-group' ):
918- item .set_active (True )
919- else :
920- item .connect ('activate' , self .on_tray_group_selected , group )
921- menu .append (item )
916+ self .context_menu .append (Gtk .SeparatorMenuItem ())
922917
923- menu .append (Gtk .SeparatorMenuItem ())
918+ for group in self .file_handler .get_note_group_names ():
919+ item = Gtk .RadioMenuItem (label = group )
920+ if group == self .settings .get_string ('active-group' ):
921+ item .set_active (True )
922+ else :
923+ item .connect ('activate' , self .on_tray_group_selected , group )
924+ self .context_menu .append (item )
924925
925- item = Gtk .MenuItem (label = _ ("Preferences" ))
926- item .connect ('activate' , self .open_settings_window )
927- menu .append (item )
926+ self .context_menu .append (Gtk .SeparatorMenuItem ())
928927
929- menu .append (Gtk .SeparatorMenuItem ())
928+ item = Gtk .MenuItem (label = _ ("Preferences" ))
929+ item .connect ('activate' , self .open_settings_window )
930+ self .context_menu .append (item )
930931
931- item = Gtk .MenuItem (label = _ ("Quit" ))
932- item .connect ('activate' , self .quit_app )
933- menu .append (item )
932+ self .context_menu .append (Gtk .SeparatorMenuItem ())
934933
935- menu .show_all ()
936- self .status_icon .popup_menu (menu , x , y , button , time , panel_position )
934+ item = Gtk .MenuItem (label = _ ("Quit" ))
935+ item .connect ('activate' , self .quit_app )
936+ self .context_menu .append (item )
937+
938+ self .context_menu .show_all ()
939+
940+ self .status_icon .set_secondary_menu (self .context_menu )
937941
938942 def destroy_status_icon (self ):
939943 self .status_icon .set_visible (False )
@@ -1120,6 +1124,8 @@ def on_lists_changed(self, *args):
11201124 else :
11211125 self .load_notes ()
11221126
1127+ self .rebuild_tray_context_menu ()
1128+
11231129 def on_group_changed (self , f , group_name ):
11241130 if self .note_group == group_name :
11251131 self .load_notes ()
@@ -1131,6 +1137,8 @@ def on_group_name_changed(self, f, old_name, new_name):
11311137 if self .settings .get_string ('active-group' ) == old_name :
11321138 self .settings .set_string ('active-group' , new_name )
11331139
1140+ self .rebuild_tray_context_menu ()
1141+
11341142 def on_save (self , * args ):
11351143 self .get_dbus_connection ().emit_signal (None , DBUS_PATH , APPLICATION_ID , 'NotesChanged' , None )
11361144
0 commit comments