[gnome-applets/wip-geiger-warnings: 3/3] sticky-notes: replace deprecated gtk_menu_popup



commit 9f509484f427df81baf78d6e5fa8457f450a84ee
Author: Sebastian Geiger <sbastig gmx net>
Date:   Sun Apr 5 20:26:33 2020 +0200

    sticky-notes: replace deprecated gtk_menu_popup

 .../sticky-notes/sticky-notes-applet-callbacks.c   |  2 +-
 gnome-applets/sticky-notes/sticky-notes-applet.c   |  2 +-
 .../sticky-notes/sticky-notes-callbacks.c          | 18 ++++++------
 .../sticky-notes/sticky-notes-callbacks.h          |  2 +-
 gnome-applets/sticky-notes/sticky-notes.c          | 32 ++++++++++++----------
 gnome-applets/sticky-notes/sticky-notes.h          |  8 ++++--
 6 files changed, 33 insertions(+), 31 deletions(-)
---
diff --git a/gnome-applets/sticky-notes/sticky-notes-applet-callbacks.c 
b/gnome-applets/sticky-notes/sticky-notes-applet-callbacks.c
index 516ce72bd..5b6b6ad40 100644
--- a/gnome-applets/sticky-notes/sticky-notes-applet-callbacks.c
+++ b/gnome-applets/sticky-notes/sticky-notes-applet-callbacks.c
@@ -61,7 +61,7 @@ static gboolean get_desktop_window (Window *window)
 static void
 popup_add_note (StickyNotesApplet *applet)
 {
-       stickynotes_add (gtk_widget_get_screen (GTK_WIDGET (applet)));
+       stickynotes_add (applet);
 }
 
 static void
diff --git a/gnome-applets/sticky-notes/sticky-notes-applet.c 
b/gnome-applets/sticky-notes/sticky-notes-applet.c
index df97593fd..5d4a7743e 100644
--- a/gnome-applets/sticky-notes/sticky-notes-applet.c
+++ b/gnome-applets/sticky-notes/sticky-notes-applet.c
@@ -177,7 +177,7 @@ sticky_notes_init (GpApplet *applet)
        stickynotes->max_height = 0.8*gdk_screen_get_height( gdk_screen_get_default() );
 
        /* Load sticky notes */
-       stickynotes_load (gtk_widget_get_screen (GTK_WIDGET (applet)));
+       stickynotes_load (STICKY_NOTES_APPLET (applet));
 
        install_check_click_on_desktop ();
 }
diff --git a/gnome-applets/sticky-notes/sticky-notes-callbacks.c 
b/gnome-applets/sticky-notes/sticky-notes-callbacks.c
index 0c9d3143e..696647703 100644
--- a/gnome-applets/sticky-notes/sticky-notes-callbacks.c
+++ b/gnome-applets/sticky-notes/sticky-notes-callbacks.c
@@ -108,17 +108,15 @@ stickynote_delete_cb (GtkWidget  *widget,
 gboolean
 stickynote_show_popup_menu (GtkWidget      *widget,
                             GdkEventButton *event,
-                            GtkWidget      *popup_menu)
+                            StickyNote     *note)
 {
-       if (event->type == GDK_BUTTON_PRESS && event->button == 3)
-       {
-               gtk_menu_popup (GTK_MENU (popup_menu),
-                               NULL, NULL,
-                               NULL, NULL,
-                               event->button, event->time);
-       }
+  if (event->type != GDK_BUTTON_PRESS || event->button != 3)
+    return GDK_EVENT_PROPAGATE;
 
-       return FALSE;
+  gtk_menu_popup_at_pointer (GTK_MENU (note->w_menu),
+                             (GdkEvent *) event);
+
+  return GDK_EVENT_PROPAGATE;
 }
 
 /* Popup Menu Callback : Create a new sticky note */
@@ -128,7 +126,7 @@ popup_create_cb (GSimpleAction *action,
                  gpointer       user_data)
 {
        StickyNote *note = (StickyNote *) user_data;
-       stickynotes_add (gtk_widget_get_screen (note->w_window));
+       stickynotes_add (note->applet);
 }
 
 /* Popup Menu Callback : Destroy selected sticky note */
diff --git a/gnome-applets/sticky-notes/sticky-notes-callbacks.h 
b/gnome-applets/sticky-notes/sticky-notes-callbacks.h
index 5ebb02361..928258c23 100644
--- a/gnome-applets/sticky-notes/sticky-notes-callbacks.h
+++ b/gnome-applets/sticky-notes/sticky-notes-callbacks.h
@@ -27,7 +27,7 @@ gboolean stickynote_resize_cb(GtkWidget *widget, GdkEventButton *event, StickyNo
 gboolean stickynote_move_cb(GtkWidget *widget, GdkEventButton *event, StickyNote *note);
 gboolean stickynote_configure_cb(GtkWidget *widget, GdkEventConfigure *event, StickyNote *note);
 gboolean stickynote_delete_cb(GtkWidget *widget, GdkEvent *event, StickyNote *note);
-gboolean stickynote_show_popup_menu(GtkWidget *widget, GdkEventButton *event, GtkWidget *popup_menu);
+gboolean stickynote_show_popup_menu(GtkWidget *widget, GdkEventButton *event, StickyNote *note);
 
 /* Callbacks for the sticky notes popup menu */
 void popup_create_cb         (GSimpleAction *action,
diff --git a/gnome-applets/sticky-notes/sticky-notes.c b/gnome-applets/sticky-notes/sticky-notes.c
index 288b4f174..16d751151 100644
--- a/gnome-applets/sticky-notes/sticky-notes.c
+++ b/gnome-applets/sticky-notes/sticky-notes.c
@@ -153,7 +153,7 @@ buffer_changed (GtkTextBuffer *buffer, StickyNote *note)
 /* Create a new (empty) Sticky Note at a specific position
    and with specific size */
 static StickyNote *
-stickynote_new_aux (GdkScreen *screen, gint x, gint y, gint w, gint h)
+stickynote_new_aux (StickyNotesApplet *applet, gint x, gint y, gint w, gint h)
 {
        StickyNote *note;
        GtkBuilder *builder;
@@ -161,6 +161,8 @@ stickynote_new_aux (GdkScreen *screen, gint x, gint y, gint w, gint h)
 
        note = g_new (StickyNote, 1);
 
+       note->applet = applet;
+
        builder = gtk_builder_new ();
        gtk_builder_add_from_resource (builder,
                                       GRESOURCE_PREFIX "/ui/sticky-notes-note.ui",
@@ -170,7 +172,7 @@ stickynote_new_aux (GdkScreen *screen, gint x, gint y, gint w, gint h)
                                       NULL);
 
        note->w_window = GTK_WIDGET (gtk_builder_get_object (builder, "stickynote_window"));
-       gtk_window_set_screen(GTK_WINDOW(note->w_window),screen);
+       gtk_window_set_screen(GTK_WINDOW(note->w_window), gdk_screen_get_default ());
        gtk_window_set_decorated (GTK_WINDOW (note->w_window), FALSE);
        gtk_window_set_skip_taskbar_hint (GTK_WINDOW (note->w_window), TRUE);
        gtk_window_set_skip_pager_hint (GTK_WINDOW (note->w_window), TRUE);
@@ -206,7 +208,7 @@ stickynote_new_aux (GdkScreen *screen, gint x, gint y, gint w, gint h)
 
        note->w_properties = GTK_WIDGET (gtk_builder_get_object (builder,
                        "stickynote_properties"));
-       gtk_window_set_screen (GTK_WINDOW (note->w_properties), screen);
+       gtk_window_set_screen (GTK_WINDOW (note->w_properties), gdk_screen_get_default ());
 
        note->w_entry = GTK_WIDGET (gtk_builder_get_object (builder, "title_entry"));
        note->w_color = GTK_WIDGET (gtk_builder_get_object (builder, "note_color"));
@@ -263,7 +265,7 @@ stickynote_new_aux (GdkScreen *screen, gint x, gint y, gint w, gint h)
        gtk_widget_set_name (note->w_window, note->name);
 
        note->css = gtk_css_provider_new ();
-       gtk_style_context_add_provider_for_screen (screen,
+       gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
                                                   GTK_STYLE_PROVIDER (note->css),
                                                   GTK_STYLE_PROVIDER_PRIORITY_USER + 100);
 
@@ -276,19 +278,19 @@ stickynote_new_aux (GdkScreen *screen, gint x, gint y, gint w, gint h)
        gtk_widget_realize (note->w_window);
 
        g_signal_connect (G_OBJECT (note->w_window), "button-press-event",
-                       G_CALLBACK (stickynote_show_popup_menu), note->w_menu);
+                       G_CALLBACK (stickynote_show_popup_menu), note);
 
        g_signal_connect (G_OBJECT (note->w_lock), "button-press-event",
-                       G_CALLBACK (stickynote_show_popup_menu), note->w_menu);
+                       G_CALLBACK (stickynote_show_popup_menu), note);
 
        g_signal_connect (G_OBJECT (note->w_close), "button-press-event",
-                       G_CALLBACK (stickynote_show_popup_menu), note->w_menu);
+                       G_CALLBACK (stickynote_show_popup_menu), note);
 
        g_signal_connect (G_OBJECT (note->w_resize_se), "button-press-event",
-                       G_CALLBACK (stickynote_show_popup_menu), note->w_menu);
+                       G_CALLBACK (stickynote_show_popup_menu), note);
 
        g_signal_connect (G_OBJECT (note->w_resize_sw), "button-press-event",
-                       G_CALLBACK (stickynote_show_popup_menu), note->w_menu);
+                       G_CALLBACK (stickynote_show_popup_menu), note);
 
        /* Connect a properties dialog to the note */
        gtk_window_set_transient_for (GTK_WINDOW(note->w_properties),
@@ -346,9 +348,9 @@ stickynote_new_aux (GdkScreen *screen, gint x, gint y, gint w, gint h)
 
 /* Create a new (empty) Sticky Note */
 StickyNote *
-stickynote_new (GdkScreen *screen)
+stickynote_new (StickyNotesApplet *applet)
 {
-       return stickynote_new_aux (screen, -1, -1, 0, 0);
+       return stickynote_new_aux (applet, -1, -1, 0, 0);
 }
 
 /* Destroy a Sticky Note */
@@ -845,11 +847,11 @@ stickynote_set_visible (StickyNote *note, gboolean visible)
 }
 
 /* Add a sticky note */
-void stickynotes_add (GdkScreen *screen)
+void stickynotes_add (StickyNotesApplet *applet)
 {
        StickyNote *note;
 
-       note = stickynote_new (screen);
+       note = stickynote_new (applet);
 
        stickynotes->notes = g_list_append(stickynotes->notes, note);
        stickynotes_applet_update_tooltips();
@@ -1028,7 +1030,7 @@ stickynotes_save (void)
 
 /* Load all sticky notes from an XML configuration file */
 void
-stickynotes_load (GdkScreen *screen)
+stickynotes_load (StickyNotesApplet *applet)
 {
        xmlDocPtr doc;
        xmlNodePtr root;
@@ -1123,7 +1125,7 @@ stickynotes_load (GdkScreen *screen)
                        }
 
                        /* Create a new note */
-                       note = stickynote_new_aux (screen, x, y, w, h);
+                       note = stickynote_new_aux (applet, x, y, w, h);
                        stickynotes->notes = g_list_append (stickynotes->notes,
                                        note);
                        new_notes = g_list_append (new_notes, note);
diff --git a/gnome-applets/sticky-notes/sticky-notes.h b/gnome-applets/sticky-notes/sticky-notes.h
index c2322dd75..5fa1da04f 100644
--- a/gnome-applets/sticky-notes/sticky-notes.h
+++ b/gnome-applets/sticky-notes/sticky-notes.h
@@ -24,6 +24,8 @@
 
 typedef struct
 {
+  StickyNotesApplet *applet;
+
        GtkWidget *w_window;            /* Sticky Note window */
        GtkWidget *w_menu;              /* Sticky Note menu */
        GtkWidget *w_properties;        /* Sticky Note properties dialog */
@@ -69,7 +71,7 @@ typedef struct
 
 } StickyNote;
 
-StickyNote * stickynote_new(GdkScreen *screen);
+StickyNote * stickynote_new(StickyNotesApplet *applet);
 void stickynote_free(StickyNote *note);
 
 gboolean stickynote_get_empty(const StickyNote *note);
@@ -85,10 +87,10 @@ void stickynote_set_visible(StickyNote *note, gboolean visible);
 
 void stickynote_change_properties(StickyNote *note);
 
-void stickynotes_add(GdkScreen *screen);
+void stickynotes_add(StickyNotesApplet *applet);
 void stickynotes_remove(StickyNote *note);
 void stickynotes_save(void);
 void stickynotes_save_now (void);
-void stickynotes_load(GdkScreen *screen);
+void stickynotes_load(StickyNotesApplet *applet);
 
 #endif /* __STICKYNOTES_H__ */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]