summaryrefslogtreecommitdiff
path: root/stickynotes/stickynotes.c
diff options
context:
space:
mode:
authorlukefromdc <[email protected]>2023-06-20 01:35:12 -0400
committerraveit65 <[email protected]>2023-07-17 02:47:28 +0200
commitce52935ec89bacd417ca6065012986e83a920f48 (patch)
tree282e8fa40b6589f831c24e9f894d8872d7d3575d /stickynotes/stickynotes.c
parent6133a03263321ab85fae9299968a8f069b3dfad5 (diff)
downloadmate-applets-ce52935ec89bacd417ca6065012986e83a920f48.tar.bz2
mate-applets-ce52935ec89bacd417ca6065012986e83a920f48.tar.xz
stickynotes: port to in-process for wayland
- Note that functions involving measuring or clicking on the desktop - Are x11 only as wayland does not allow one app to access another's windows - Fix warnings on removal of applet - use wnck only in x11 - Cleanup X11 checks
Diffstat (limited to 'stickynotes/stickynotes.c')
-rw-r--r--stickynotes/stickynotes.c54
1 files changed, 31 insertions, 23 deletions
diff --git a/stickynotes/stickynotes.c b/stickynotes/stickynotes.c
index 255fb677..3f5c7985 100644
--- a/stickynotes/stickynotes.c
+++ b/stickynotes/stickynotes.c
@@ -809,12 +809,10 @@ stickynotes_remove (StickyNote *note)
gboolean
stickynotes_save_now (void)
{
- WnckScreen *wnck_screen;
const gchar *title;
GtkTextBuffer *buffer;
GtkTextIter start, end;
gchar *body;
-
gint i;
/* Create a new XML document */
@@ -823,14 +821,16 @@ stickynotes_save_now (void)
xmlDocSetRootElement (doc, root);
xmlNewProp (root, XML_CHAR ("version"), XML_CHAR (VERSION));
-
- wnck_screen = wnck_screen_get_default ();
- wnck_screen_force_update (wnck_screen);
-
+#ifdef GDK_WINDOWING_X11
+ GdkDisplay *display = gdk_screen_get_display(gdk_screen_get_default());
+ if (GDK_IS_X11_DISPLAY(display))
+ {
+ WnckScreen *wnck_screen = wnck_screen_get_default ();
+ wnck_screen_force_update (wnck_screen);
+ }
+#endif
/* For all sticky notes */
for (i = 0; i < g_list_length (stickynotes->notes); i++) {
- WnckWindow *wnck_win;
- gulong xid = 0;
/* Access the current note in the list */
StickyNote *note = g_list_nth_data (stickynotes->notes, i);
@@ -842,16 +842,19 @@ stickynotes_save_now (void)
/* Retrieve the window position of the note */
gchar *x_str = g_strdup_printf ("%d", note->x);
gchar *y_str = g_strdup_printf ("%d", note->y);
-
- xid = GDK_WINDOW_XID (gtk_widget_get_window (note->w_window));
- wnck_win = wnck_window_get (xid);
-
- if (!g_settings_get_boolean (stickynotes->settings, "sticky") && wnck_win)
- note->workspace = 1 +
- wnck_workspace_get_number (wnck_window_get_workspace (wnck_win));
- else
- note->workspace = 0;
-
+#ifdef GDK_WINDOWING_X11
+ if (GDK_IS_X11_DISPLAY(display))
+ {
+ gulong xid = GDK_WINDOW_XID (gtk_widget_get_window (note->w_window));
+ WnckWindow *wnck_win = wnck_window_get (xid);
+
+ if (!g_settings_get_boolean (stickynotes->settings, "sticky") && wnck_win)
+ note->workspace = 1 +
+ wnck_workspace_get_number (wnck_window_get_workspace (wnck_win));
+ else
+ note->workspace = 0;
+ }
+#endif
/* Retrieve the title of the note */
title = gtk_label_get_text (GTK_LABEL (note->w_title));
@@ -948,10 +951,12 @@ stickynotes_load (GdkScreen *screen)
xmlDocPtr doc = NULL;
xmlNodePtr root;
xmlNodePtr node;
- /* WnckScreen *wnck_screen; */
GList *new_notes, *tmp1; /* Lists of StickyNote*'s */
GList *new_nodes; /* Lists of xmlNodePtr's */
int x, y, w, h;
+#ifdef GDK_WINDOWING_X11
+ GdkDisplay *display = gdk_screen_get_display(gdk_screen_get_default());
+#endif
/* The XML file is $HOME/.config/mate/stickynotes-applet, most probably */
gchar* file = g_build_filename (g_get_user_config_dir (),
@@ -1123,11 +1128,14 @@ stickynotes_load (GdkScreen *screen)
}
tmp1 = new_notes;
- /*
- wnck_screen = wnck_screen_get_default ();
- wnck_screen_force_update (wnck_screen);
- */
+#ifdef GDK_WINDOWING_X11
+ if (GDK_IS_X11_DISPLAY(display))
+ {
+ WnckScreen *wnck_screen = wnck_screen_get_default ();
+ wnck_screen_force_update (wnck_screen);
+ }
+#endif
while (tmp1) {
StickyNote *note = tmp1->data;