pidgin/plugins/perl/common/gtkmodule.h

Sat, 28 Apr 2007 02:33:40 +0000

author
Luke Schierer <lschiere@pidgin.im>
date
Sat, 28 Apr 2007 02:33:40 +0000
changeset 16621
616dc666cfb8
parent 15899
75f0041f72b8
child 18068
b6554e3c8224
child 24569
5dbd0617a27d
permissions
-rw-r--r--

Quoth Charkins:
This patch has two changes:

"This patch has two changes:

First is to slightly change the re-creation behavior of the docklet. Sadrul pointed out on gaim-devel that the x11 docklet re-creates itself when it is destroyed and thought this might be causing problems with fluxbox. This patch now distinguishes between initial creation and re-creation. When re-creating, the docklet no longer registers itself as a visibility manager until it successfully embeds.

Second is to change the timeout behavior for embedding. Because the notification area API is asynchronous, gaim assumes the docklet gets embeded for a certain timeout period, allowing the buddy list to start hidden before the docklet has been embeded in the notification area. If the timeout occurs, it is removed as a visibility manager and the buddy list will become visible. This timeout has been set at 5 seconds. There have been a few reports that indicate this timeout period is not long enough when starting gaim from a saved session upon login. I have been hesitant to increase the timeout, as it has the potential of delaying the startup of gaim for the timeout period if the buddy list was hidden when gaim last closed and there is not currently a notification area available. This patch makes the x11 docklet track whether it was successfully embedded and uses a longer timeout (15 seconds in this patch) only if it successfully embedded on the previous execution. Otherwise, it uses the shorter 5 second timeout. "

typedef struct group *Pidgin__Group;

#define group perl_group

#include <glib.h>
#include <gtk/gtk.h>
#ifdef _WIN32
#undef pipe
#endif
#include <EXTERN.h>
#include <perl.h>
#include <XSUB.h>

#undef group

#include <plugins/perl/common/module.h>

#include "gtkaccount.h"
#include "gtkblist.h"
#include "gtkconn.h"
#include "gtkconv.h"
#include "gtkconvwin.h"
#include "gtkdebug.h"
#include "gtkdialogs.h"
#include "gtkft.h"
#include "gtkimhtml.h"
#include "gtkimhtmltoolbar.h"
#include "gtklog.h"
#include "gtkmenutray.h"
#include "gtkplugin.h"
#include "gtkpluginpref.h"
#include "gtkpounce.h"
#include "gtkprefs.h"
#include "gtkprivacy.h"
#include "gtkroomlist.h"
#include "gtksavedstatuses.h"
#include "gtksession.h"
#include "gtksound.h"
#include "gtkstatusbox.h"
#include "gtkthemes.h"
#include "gtkutils.h"

/* gtkaccount.h */
typedef PidginAccountDialogType		Pidgin__Account__Dialog__Type;

/* gtkblist.h */
typedef PidginBuddyList *		Pidgin__BuddyList;
typedef pidgin_blist_sort_function	Pidgin__BuddyList__SortFunction;

/* gtkconv.h */
typedef PidginConversation *		Pidgin__Conversation;
typedef PidginUnseenState		Pidgin__UnseenState;

/* gtkconvwin.h */
typedef PidginWindow *			Pidgin__Conversation__Window;
typedef PidginConvPlacementFunc		Pidgin__Conversation__PlacementFunc;

/* gtkft.h */
typedef PidginXferDialog *		Pidgin__Xfer__Dialog;

/* gtkimhtml.h */
typedef GtkIMHtml *			Pidgin__IMHtml;
typedef GtkIMHtmlButtons		Pidgin__IMHtml__Buttons;
typedef GtkIMHtmlFuncs *		Pidgin__IMHtml__Funcs;
typedef GtkIMHtmlScalable *		Pidgin__IMHtml__Scalable;
typedef GtkIMHtmlSmiley *		Pidgin__IMHtml__Smiley;
typedef GtkIMHtmlOptions		Pidgin__IMHtml__Options;

/* gtkimhtmltoolbar.h */
typedef GtkIMHtmlToolbar *		Pidgin__IMHtmlToolbar;

/* gtkmenutray.h */
typedef PidginMenuTray *		Pidgin__MenuTray;

/* gtkstatusbox.h */
typedef PidginStatusBox *		Pidgin__StatusBox;

mercurial