mirror of
https://github.com/ZoiteChat/zoitechat.git
synced 2026-03-13 01:00:19 +00:00
Compare commits
11 Commits
plugins-re
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
166542f1e3 | ||
| 05f4bf382d | |||
| 52af960175 | |||
|
|
a2e2bdf803 | ||
|
|
3baa5d92f4 | ||
| 99f97b82a6 | |||
|
|
6d1e7da475 | ||
|
|
f676aa56e6 | ||
|
|
5e86f363ed | ||
|
|
0523b0639b | ||
|
|
b3f692f00c |
@@ -16,6 +16,7 @@
|
|||||||
"--filesystem=~/.themes:ro",
|
"--filesystem=~/.themes:ro",
|
||||||
"--filesystem=~/.icons:ro",
|
"--filesystem=~/.icons:ro",
|
||||||
"--filesystem=xdg-run/tray-icon:create",
|
"--filesystem=xdg-run/tray-icon:create",
|
||||||
|
"--env=GTK_CSD=1",
|
||||||
|
|
||||||
"--talk-name=org.freedesktop.Notifications",
|
"--talk-name=org.freedesktop.Notifications",
|
||||||
"--talk-name=org.kde.StatusNotifierWatcher",
|
"--talk-name=org.kde.StatusNotifierWatcher",
|
||||||
|
|||||||
@@ -338,8 +338,8 @@ static const struct defaultserver def[] =
|
|||||||
|
|
||||||
{"Zoite", 0, 0, 0, LOGIN_SASL, 0, TRUE},
|
{"Zoite", 0, 0, 0, LOGIN_SASL, 0, TRUE},
|
||||||
{0, "irc.zoite.net"},
|
{0, "irc.zoite.net"},
|
||||||
{0, "penumbra.newnet.net"},
|
{0, "penumbra.zoite.net"},
|
||||||
{0, "hedy.newnet.net"},
|
{0, "hedy.zoite.net"},
|
||||||
|
|
||||||
{0,0}
|
{0,0}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1144,6 +1144,12 @@ fe_gui_info (session *sess, int info_type)
|
|||||||
return 2; /* hidden (iconified or systray) */
|
return 2; /* hidden (iconified or systray) */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
GdkWindow *gdk_win = gtk_widget_get_window (GTK_WIDGET (sess->gui->window));
|
||||||
|
if (gdk_win && (gdk_window_get_state (gdk_win) & GDK_WINDOW_STATE_ICONIFIED))
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
if (gtk_window_is_active (GTK_WINDOW (sess->gui->window)))
|
if (gtk_window_is_active (GTK_WINDOW (sess->gui->window)))
|
||||||
{
|
{
|
||||||
return 1; /* active/focused */
|
return 1; /* active/focused */
|
||||||
|
|||||||
@@ -1572,6 +1572,12 @@ menu_away (GtkCheckMenuItem *item, gpointer none)
|
|||||||
handle_command (current_sess, gtk_check_menu_item_get_active (item) ? "away" : "back", FALSE);
|
handle_command (current_sess, gtk_check_menu_item_get_active (item) ? "away" : "back", FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
menu_away_toggle (GtkWidget *item, gpointer none)
|
||||||
|
{
|
||||||
|
handle_command (current_sess, current_sess->server->is_away ? "back" : "away", FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
menu_chanlist (GtkWidget * wid, gpointer none)
|
menu_chanlist (GtkWidget * wid, gpointer none)
|
||||||
{
|
{
|
||||||
@@ -1888,30 +1894,12 @@ menu_about (GtkWidget *wid, gpointer sess)
|
|||||||
gtk_widget_show_all (GTK_WIDGET(dialog));
|
gtk_widget_show_all (GTK_WIDGET(dialog));
|
||||||
}
|
}
|
||||||
|
|
||||||
#define ICON_NEW "zc-menu-new"
|
|
||||||
#define ICON_NETWORK_LIST "zc-menu-network-list"
|
|
||||||
#define ICON_LOAD_PLUGIN "zc-menu-load-plugin"
|
|
||||||
#define ICON_DETACH "zc-menu-detach"
|
|
||||||
#define ICON_CLOSE "zc-menu-close"
|
|
||||||
#define ICON_QUIT "zc-menu-quit"
|
|
||||||
#define ICON_DISCONNECT "zc-menu-disconnect"
|
|
||||||
#define ICON_CONNECT "zc-menu-connect"
|
|
||||||
#define ICON_JOIN "zc-menu-join"
|
|
||||||
#define ICON_CHANLIST "zc-menu-chanlist"
|
|
||||||
#define ICON_PREFERENCES "zc-menu-preferences"
|
|
||||||
#define ICON_CLEAR "zc-menu-clear"
|
|
||||||
#define ICON_SAVE "zc-menu-save"
|
|
||||||
#define ICON_SEARCH "zc-menu-search"
|
|
||||||
#define ICON_FIND "zc-menu-find"
|
|
||||||
#define ICON_HELP "zc-menu-help"
|
|
||||||
#define ICON_ABOUT "zc-menu-about"
|
|
||||||
|
|
||||||
static struct mymenu mymenu[] = {
|
static struct mymenu mymenu[] = {
|
||||||
{N_("_ZoiteChat"), 0, 0, M_NEWMENU, MENU_ID_ZOITECHAT, 0, 1},
|
{N_("_ZoiteChat"), 0, 0, M_NEWMENU, MENU_ID_ZOITECHAT, 0, 1},
|
||||||
{N_("Network Li_st"), menu_open_server_list, ICON_NETWORK_LIST, M_MENUSTOCK, 0, 0, 1, GDK_KEY_s},
|
{N_("Network Li_st"), menu_open_server_list, 0, M_MENUITEM, 0, 0, 1, GDK_KEY_s},
|
||||||
{0, 0, 0, M_SEP, 0, 0, 0},
|
{0, 0, 0, M_SEP, 0, 0, 0},
|
||||||
|
|
||||||
{N_("_New"), 0, ICON_NEW, M_MENUSUB, 0, 0, 1},
|
{N_("_New"), 0, 0, M_MENUSUB, 0, 0, 1},
|
||||||
{N_("Server Tab"), menu_newserver_tab, 0, M_MENUITEM, 0, 0, 1, GDK_KEY_t},
|
{N_("Server Tab"), menu_newserver_tab, 0, M_MENUITEM, 0, 0, 1, GDK_KEY_t},
|
||||||
{N_("Channel Tab"), menu_newchannel_tab, 0, M_MENUITEM, 0, 0, 1},
|
{N_("Channel Tab"), menu_newchannel_tab, 0, M_MENUITEM, 0, 0, 1},
|
||||||
{N_("Server Window"), menu_newserver_window, 0, M_MENUITEM, 0, 0, 1, GDK_KEY_n},
|
{N_("Server Window"), menu_newserver_window, 0, M_MENUITEM, 0, 0, 1, GDK_KEY_n},
|
||||||
@@ -1919,14 +1907,14 @@ static struct mymenu mymenu[] = {
|
|||||||
{0, 0, 0, M_END, 0, 0, 0},
|
{0, 0, 0, M_END, 0, 0, 0},
|
||||||
{0, 0, 0, M_SEP, 0, 0, 0},
|
{0, 0, 0, M_SEP, 0, 0, 0},
|
||||||
|
|
||||||
{N_("_Load Plugin or Script" ELLIPSIS), menu_loadplugin, ICON_LOAD_PLUGIN, M_MENUSTOCK, 0, 0, 1},
|
{N_("_Load Plugin or Script" ELLIPSIS), menu_loadplugin, 0, M_MENUITEM, 0, 0, 1},
|
||||||
{0, 0, 0, M_SEP, 0, 0, 0}, /* 11 */
|
{0, 0, 0, M_SEP, 0, 0, 0}, /* 11 */
|
||||||
#define DETACH_OFFSET (12)
|
#define DETACH_OFFSET (12)
|
||||||
{0, menu_detach, ICON_DETACH, M_MENUSTOCK, 0, 0, 1}, /* 12 */
|
{0, menu_detach, 0, M_MENUITEM, 0, 0, 1}, /* 12 */
|
||||||
#define CLOSE_OFFSET (13)
|
#define CLOSE_OFFSET (13)
|
||||||
{0, menu_close, ICON_CLOSE, M_MENUSTOCK, 0, 0, 1},
|
{0, menu_close, 0, M_MENUITEM, 0, 0, 1},
|
||||||
{0, 0, 0, M_SEP, 0, 0, 0},
|
{0, 0, 0, M_SEP, 0, 0, 0},
|
||||||
{N_("_Quit"), menu_quit, ICON_QUIT, M_MENUSTOCK, 0, 0, 1, GDK_KEY_q}, /* 15 */
|
{N_("_Quit"), menu_quit, 0, M_MENUITEM, 0, 0, 1, GDK_KEY_q}, /* 15 */
|
||||||
|
|
||||||
{N_("_View"), 0, 0, M_NEWMENU, 0, 0, 1},
|
{N_("_View"), 0, 0, M_NEWMENU, 0, 0, 1},
|
||||||
#define MENUBAR_OFFSET (17)
|
#define MENUBAR_OFFSET (17)
|
||||||
@@ -1952,18 +1940,18 @@ static struct mymenu mymenu[] = {
|
|||||||
{N_ ("_Fullscreen"), menu_fullscreen_toggle, 0, M_MENUTOG, MENU_ID_FULLSCREEN, 0, 1, GDK_KEY_F11},
|
{N_ ("_Fullscreen"), menu_fullscreen_toggle, 0, M_MENUTOG, MENU_ID_FULLSCREEN, 0, 1, GDK_KEY_F11},
|
||||||
|
|
||||||
{N_("_Server"), 0, 0, M_NEWMENU, 0, 0, 1},
|
{N_("_Server"), 0, 0, M_NEWMENU, 0, 0, 1},
|
||||||
{N_("_Disconnect"), menu_disconnect, ICON_DISCONNECT, M_MENUSTOCK, MENU_ID_DISCONNECT, 0, 1},
|
{N_("_Disconnect"), menu_disconnect, 0, M_MENUITEM, MENU_ID_DISCONNECT, 0, 1},
|
||||||
{N_("_Reconnect"), menu_reconnect, ICON_CONNECT, M_MENUSTOCK, MENU_ID_RECONNECT, 0, 1},
|
{N_("_Reconnect"), menu_reconnect, 0, M_MENUITEM, MENU_ID_RECONNECT, 0, 1},
|
||||||
{N_("_Join a Channel" ELLIPSIS), menu_join, ICON_JOIN, M_MENUSTOCK, MENU_ID_JOIN, 0, 1},
|
{N_("_Join a Channel" ELLIPSIS), menu_join, 0, M_MENUITEM, MENU_ID_JOIN, 0, 1},
|
||||||
{N_("Channel _List"), menu_chanlist, ICON_CHANLIST, M_MENUSTOCK, 0, 0, 1},
|
{N_("Channel _List"), menu_chanlist, 0, M_MENUITEM, 0, 0, 1},
|
||||||
{0, 0, 0, M_SEP, 0, 0, 0},
|
{0, 0, 0, M_SEP, 0, 0, 0},
|
||||||
#define AWAY_OFFSET (41)
|
#define AWAY_OFFSET (41)
|
||||||
{N_("Marked _Away"), menu_away, 0, M_MENUTOG, MENU_ID_AWAY, 0, 1, GDK_KEY_a},
|
{N_("Marked _Away"), menu_away_toggle, 0, M_MENUITEM, MENU_ID_AWAY, 0, 1, GDK_KEY_a},
|
||||||
|
|
||||||
{N_("_Usermenu"), 0, 0, M_NEWMENU, MENU_ID_USERMENU, 0, 1}, /* 40 */
|
{N_("_Usermenu"), 0, 0, M_NEWMENU, MENU_ID_USERMENU, 0, 1}, /* 40 */
|
||||||
|
|
||||||
{N_("S_ettings"), 0, 0, M_NEWMENU, 0, 0, 1},
|
{N_("S_ettings"), 0, 0, M_NEWMENU, 0, 0, 1},
|
||||||
{N_("_Preferences"), menu_settings, ICON_PREFERENCES, M_MENUSTOCK, 0, 0, 1},
|
{N_("_Preferences"), menu_settings, 0, M_MENUITEM, 0, 0, 1},
|
||||||
{0, 0, 0, M_SEP, 0, 0, 0},
|
{0, 0, 0, M_SEP, 0, 0, 0},
|
||||||
{N_("Auto Replace"), menu_rpopup, 0, M_MENUITEM, 0, 0, 1},
|
{N_("Auto Replace"), menu_rpopup, 0, M_MENUITEM, 0, 0, 1},
|
||||||
{N_("CTCP Replies"), menu_ctcpguiopen, 0, M_MENUITEM, 0, 0, 1},
|
{N_("CTCP Replies"), menu_ctcpguiopen, 0, M_MENUITEM, 0, 0, 1},
|
||||||
@@ -1989,18 +1977,18 @@ static struct mymenu mymenu[] = {
|
|||||||
{N_("Reset Marker Line"), menu_resetmarker, 0, M_MENUITEM, 0, 0, 1, GDK_KEY_m},
|
{N_("Reset Marker Line"), menu_resetmarker, 0, M_MENUITEM, 0, 0, 1, GDK_KEY_m},
|
||||||
{N_("Move to Marker Line"), menu_movetomarker, 0, M_MENUITEM, 0, 0, 1, GDK_KEY_M},
|
{N_("Move to Marker Line"), menu_movetomarker, 0, M_MENUITEM, 0, 0, 1, GDK_KEY_M},
|
||||||
{N_("_Copy Selection"), menu_copy_selection, 0, M_MENUITEM, 0, 0, 1, GDK_KEY_C},
|
{N_("_Copy Selection"), menu_copy_selection, 0, M_MENUITEM, 0, 0, 1, GDK_KEY_C},
|
||||||
{N_("C_lear Text"), menu_flushbuffer, ICON_CLEAR, M_MENUSTOCK, 0, 0, 1},
|
{N_("C_lear Text"), menu_flushbuffer, 0, M_MENUITEM, 0, 0, 1},
|
||||||
{N_("Save Text" ELLIPSIS), menu_savebuffer, ICON_SAVE, M_MENUSTOCK, 0, 0, 1},
|
{N_("Save Text" ELLIPSIS), menu_savebuffer, 0, M_MENUITEM, 0, 0, 1},
|
||||||
#define SEARCH_OFFSET (70)
|
#define SEARCH_OFFSET (70)
|
||||||
{N_("Search"), 0, ICON_SEARCH, M_MENUSUB, 0, 0, 1},
|
{N_("Search"), 0, 0, M_MENUSUB, 0, 0, 1},
|
||||||
{N_("Search Text" ELLIPSIS), menu_search, ICON_FIND, M_MENUSTOCK, 0, 0, 1, GDK_KEY_f},
|
{N_("Search Text" ELLIPSIS), menu_search, 0, M_MENUITEM, 0, 0, 1, GDK_KEY_f},
|
||||||
{N_("Search Next" ), menu_search_next, ICON_FIND, M_MENUSTOCK, 0, 0, 1, GDK_KEY_g},
|
{N_("Search Next" ), menu_search_next, 0, M_MENUITEM, 0, 0, 1, GDK_KEY_g},
|
||||||
{N_("Search Previous" ), menu_search_prev, ICON_FIND, M_MENUSTOCK, 0, 0, 1, GDK_KEY_G},
|
{N_("Search Previous" ), menu_search_prev, 0, M_MENUITEM, 0, 0, 1, GDK_KEY_G},
|
||||||
{0, 0, 0, M_END, 0, 0, 0},
|
{0, 0, 0, M_END, 0, 0, 0},
|
||||||
|
|
||||||
{N_("_Help"), 0, 0, M_NEWMENU, 0, 0, 1}, /* 74 */
|
{N_("_Help"), 0, 0, M_NEWMENU, 0, 0, 1}, /* 74 */
|
||||||
{N_("_Contents"), menu_docs, ICON_HELP, M_MENUSTOCK, 0, 0, 1, GDK_KEY_F1},
|
{N_("_Contents"), menu_docs, 0, M_MENUITEM, 0, 0, 1, GDK_KEY_F1},
|
||||||
{N_("_About"), menu_about, ICON_ABOUT, M_MENUSTOCK, 0, 0, 1},
|
{N_("_About"), menu_about, 0, M_MENUITEM, 0, 0, 1},
|
||||||
|
|
||||||
{0, 0, 0, M_END, 0, 0, 0},
|
{0, 0, 0, M_END, 0, 0, 0},
|
||||||
};
|
};
|
||||||
@@ -2008,11 +1996,14 @@ static struct mymenu mymenu[] = {
|
|||||||
void
|
void
|
||||||
menu_set_away (session_gui *gui, int away)
|
menu_set_away (session_gui *gui, int away)
|
||||||
{
|
{
|
||||||
GtkCheckMenuItem *item = GTK_CHECK_MENU_ITEM (gui->menu_item[MENU_ID_AWAY]);
|
if (GTK_IS_CHECK_MENU_ITEM (gui->menu_item[MENU_ID_AWAY]))
|
||||||
|
{
|
||||||
|
GtkCheckMenuItem *item = GTK_CHECK_MENU_ITEM (gui->menu_item[MENU_ID_AWAY]);
|
||||||
|
|
||||||
g_signal_handlers_block_by_func (G_OBJECT (item), menu_away, NULL);
|
g_signal_handlers_block_by_func (G_OBJECT (item), menu_away, NULL);
|
||||||
gtk_check_menu_item_set_active (item, away);
|
gtk_check_menu_item_set_active (item, away);
|
||||||
g_signal_handlers_unblock_by_func (G_OBJECT (item), menu_away, NULL);
|
g_signal_handlers_unblock_by_func (G_OBJECT (item), menu_away, NULL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
@@ -424,6 +424,8 @@ tray_app_indicator_init (void)
|
|||||||
tray_menu = gtk_menu_new ();
|
tray_menu = gtk_menu_new ();
|
||||||
g_signal_connect (G_OBJECT (tray_menu), "show",
|
g_signal_connect (G_OBJECT (tray_menu), "show",
|
||||||
G_CALLBACK (tray_menu_show_cb), NULL);
|
G_CALLBACK (tray_menu_show_cb), NULL);
|
||||||
|
g_signal_connect (G_OBJECT (tray_menu), "map",
|
||||||
|
G_CALLBACK (tray_menu_show_cb), NULL);
|
||||||
app_indicator_set_menu (tray_indicator, GTK_MENU (tray_menu));
|
app_indicator_set_menu (tray_indicator, GTK_MENU (tray_menu));
|
||||||
app_indicator_set_status (tray_indicator, APP_INDICATOR_STATUS_ACTIVE);
|
app_indicator_set_status (tray_indicator, APP_INDICATOR_STATUS_ACTIVE);
|
||||||
|
|
||||||
@@ -581,11 +583,21 @@ static WinStatus
|
|||||||
tray_get_window_status (void)
|
tray_get_window_status (void)
|
||||||
{
|
{
|
||||||
GtkWindow *win;
|
GtkWindow *win;
|
||||||
|
GtkWidget *widget;
|
||||||
|
GdkWindow *gdk_win;
|
||||||
const char *st;
|
const char *st;
|
||||||
|
|
||||||
win = GTK_WINDOW (zoitechat_get_info (ph, "gtkwin_ptr"));
|
win = GTK_WINDOW (zoitechat_get_info (ph, "gtkwin_ptr"));
|
||||||
if (win && !gtk_widget_get_visible (GTK_WIDGET (win)))
|
if (win)
|
||||||
return WS_HIDDEN;
|
{
|
||||||
|
widget = GTK_WIDGET (win);
|
||||||
|
if (!gtk_widget_get_visible (widget))
|
||||||
|
return WS_HIDDEN;
|
||||||
|
|
||||||
|
gdk_win = gtk_widget_get_window (widget);
|
||||||
|
if (gdk_win && (gdk_window_get_state (gdk_win) & GDK_WINDOW_STATE_ICONIFIED))
|
||||||
|
return WS_HIDDEN;
|
||||||
|
}
|
||||||
|
|
||||||
st = zoitechat_get_info (ph, "win_status");
|
st = zoitechat_get_info (ph, "win_status");
|
||||||
|
|
||||||
|
|||||||
@@ -198,8 +198,6 @@ plugingui_load_cb (session *sess, char *file)
|
|||||||
char *addons_dir;
|
char *addons_dir;
|
||||||
char *basename;
|
char *basename;
|
||||||
char *addons_target;
|
char *addons_target;
|
||||||
char *canonical_addons;
|
|
||||||
char *canonical_file;
|
|
||||||
gboolean file_in_addons;
|
gboolean file_in_addons;
|
||||||
|
|
||||||
target_sess = is_session (sess) ? sess : current_sess;
|
target_sess = is_session (sess) ? sess : current_sess;
|
||||||
@@ -211,11 +209,9 @@ plugingui_load_cb (session *sess, char *file)
|
|||||||
|
|
||||||
load_target = g_strdup (file);
|
load_target = g_strdup (file);
|
||||||
addons_dir = g_build_filename (get_xdir (), "addons", NULL);
|
addons_dir = g_build_filename (get_xdir (), "addons", NULL);
|
||||||
canonical_addons = g_canonicalize_filename (addons_dir, NULL);
|
file_in_addons = g_str_has_prefix (file, addons_dir)
|
||||||
canonical_file = g_canonicalize_filename (file, NULL);
|
&& (file[strlen (addons_dir)] == G_DIR_SEPARATOR
|
||||||
file_in_addons = g_str_has_prefix (canonical_file, canonical_addons)
|
|| file[strlen (addons_dir)] == '\0');
|
||||||
&& (canonical_file[strlen (canonical_addons)] == G_DIR_SEPARATOR
|
|
||||||
|| canonical_file[strlen (canonical_addons)] == '\0');
|
|
||||||
|
|
||||||
if (!file_in_addons)
|
if (!file_in_addons)
|
||||||
{
|
{
|
||||||
@@ -240,8 +236,6 @@ plugingui_load_cb (session *sess, char *file)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
g_free (canonical_addons);
|
|
||||||
g_free (canonical_file);
|
|
||||||
g_free (addons_dir);
|
g_free (addons_dir);
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
|||||||
Reference in New Issue
Block a user