30
30
#include "awn-ua-alignment.h"
31
31
#include "awn-applet-proxy.h"
32
32
#include "awn-throbber.h"
33
#include "awn-separator.h"
33
34
#include "xutils.h"
35
36
#define MAX_UA_LIST_ENTRIES 50
481
483
g_object_notify (G_OBJECT (manager), "expands");
484
// FIXME: separators!
485
if (flags & AWN_APPLET_HAS_SHAPE_MASK)
486
if ((flags & AWN_APPLET_IS_SEPARATOR) && AWN_IS_APPLET_PROXY (applet))
487
GdkWindow *win = GTK_WIDGET (applet)->window;
488
g_object_set_qdata_full (G_OBJECT (applet), priv->shape_mask_quark,
489
xutils_get_input_shape (win),
490
(GDestroyNotify) gdk_region_destroy);
491
g_signal_emit (manager, _applet_manager_signals[SHAPE_MASK_CHANGED], 0);
488
GtkWidget *image = awn_separator_new_from_config_with_values (
489
priv->client, priv->position, priv->size, priv->offset);
490
gtk_widget_show (image);
491
gtk_box_pack_start (GTK_BOX (manager), image, FALSE, TRUE, 0);
493
g_hash_table_replace (priv->applets, g_strdup (uid), image);
494
gtk_widget_destroy (GTK_WIDGET (applet));
497
awn_applet_manager_refresh_applets (manager);
495
gpointer region = g_object_get_qdata (G_OBJECT (applet),
496
priv->shape_mask_quark);
499
g_object_set_qdata (G_OBJECT (applet), priv->shape_mask_quark, NULL);
500
g_signal_emit (manager, _applet_manager_signals[SHAPE_MASK_CHANGED],
502
if (flags & AWN_APPLET_HAS_SHAPE_MASK)
504
GdkWindow *win = GTK_WIDGET (applet)->window;
505
g_object_set_qdata_full (G_OBJECT (applet), priv->shape_mask_quark,
506
xutils_get_input_shape (win),
507
(GDestroyNotify) gdk_region_destroy);
508
g_signal_emit (manager, _applet_manager_signals[SHAPE_MASK_CHANGED], 0);
512
gpointer region = g_object_get_qdata (G_OBJECT (applet),
513
priv->shape_mask_quark);
516
g_object_set_qdata (G_OBJECT (applet), priv->shape_mask_quark, NULL);
517
g_signal_emit (manager, _applet_manager_signals[SHAPE_MASK_CHANGED],
730
748
g_object_get (applet, "uid", &uid, NULL);
731
749
/* FIXME: Let the applet know it's about to be deleted ? */
733
else if (GTK_IS_IMAGE (applet)) // expander
751
else if (GTK_IS_IMAGE (applet) && !AWN_IS_SEPARATOR (applet)) // expander
735
753
priv->expander_count--;
736
754
if (priv->expander_count == 0 && priv->expands)
762
780
if (priv->applet_list == NULL)
764
782
g_debug ("No applets");
765
return; // FIXME: removing last applet doesn't work because of this
783
g_hash_table_foreach (priv->applets, (GHFunc)zero_applets, manager);
784
g_hash_table_foreach_remove (priv->applets, (GHRFunc)delete_applets,
768
789
guint applet_count = g_slist_length (priv->applet_list);