diff options
Diffstat (limited to 'stickynotes/stickynotes.c')
-rw-r--r-- | stickynotes/stickynotes.c | 87 |
1 files changed, 55 insertions, 32 deletions
diff --git a/stickynotes/stickynotes.c b/stickynotes/stickynotes.c index be05a5fb..e1e1f8cb 100644 --- a/stickynotes/stickynotes.c +++ b/stickynotes/stickynotes.c @@ -27,8 +27,6 @@ #include <string.h> #include <sys/stat.h> -#include <gtksourceview/gtksource.h> - #include "stickynotes.h" #include "stickynotes_callbacks.h" #include "util.h" @@ -50,6 +48,11 @@ set_icon_geometry (GdkWindow *window, int width, int height) { + /*This is x11-only, so return in wayland or anything else*/ + GdkScreen *screen = gdk_screen_get_default(); + if (!(GDK_IS_X11_DISPLAY (gdk_screen_get_display (screen)))) + return; + gulong data[4]; Display *dpy; @@ -136,7 +139,7 @@ stickynote_new_aux (GdkScreen *screen, gtk_widget_add_events (note->w_lock, GDK_BUTTON_PRESS_MASK); note->buffer = - GTK_SOURCE_BUFFER (gtk_text_view_get_buffer (GTK_TEXT_VIEW (note->w_body))); + GTK_TEXT_BUFFER (gtk_text_view_get_buffer (GTK_TEXT_VIEW (note->w_body))); note->w_close = GTK_WIDGET (gtk_builder_get_object (builder, "close_button")); @@ -163,9 +166,9 @@ stickynote_new_aux (GdkScreen *screen, note->w_menu = GTK_WIDGET (gtk_builder_get_object (builder, "stickynote_menu")); - note->ta_lock_toggle_item = - GTK_TOGGLE_ACTION (gtk_builder_get_object (builder, - "popup_toggle_lock")); + note->w_lock_toggle_item = + GTK_CHECK_MENU_ITEM (gtk_builder_get_object (builder, + "popup_toggle_lock")); note->w_properties = GTK_WIDGET (gtk_builder_get_object (builder, @@ -368,6 +371,10 @@ stickynote_new_aux (GdkScreen *screen, G_CALLBACK (gtk_widget_hide), note); + g_signal_connect_after (note->w_window, "key-press-event", + G_CALLBACK (stickynote_keypress_cb), + note->w_menu); + g_object_unref (builder); g_signal_connect_after (note->w_body, "button-press-event", @@ -711,8 +718,8 @@ stickynote_set_locked (StickyNote *note, gtk_image_set_pixel_size (note->img_lock, STICKYNOTES_ICON_SIZE); - gtk_toggle_action_set_active (note->ta_lock_toggle_item, - locked); + gtk_check_menu_item_set_active (note->w_lock_toggle_item, + locked); stickynotes_applet_update_menus (); } @@ -729,7 +736,15 @@ stickynote_set_visible (StickyNote *note, gtk_window_move (GTK_WINDOW (note->w_window), note->x, note->y); - /* Put the note on all workspaces if necessary. */ + + + /*On x11, Put the note on all workspaces or move it if necessary. + *We can't yet change workspace on wayland + */ + GdkScreen *screen = gdk_screen_get_default(); + if (!(GDK_IS_X11_DISPLAY (gdk_screen_get_display (screen)))) + return; + if (g_settings_get_boolean (stickynotes->settings, "sticky")) gtk_window_stick (GTK_WINDOW (note->w_window)); @@ -807,12 +822,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 */ @@ -821,14 +834,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); @@ -840,16 +855,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)); @@ -946,10 +964,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 (), @@ -1121,11 +1141,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; |