summaryrefslogtreecommitdiff
path: root/stickynotes/stickynotes.c
diff options
context:
space:
mode:
Diffstat (limited to 'stickynotes/stickynotes.c')
-rw-r--r--stickynotes/stickynotes.c87
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;