mirror of
https://github.com/ZoiteChat/zoitechat.git
synced 2026-04-02 10:40:18 +00:00
Compare commits
1 Commits
master
...
windows-ta
| Author | SHA1 | Date | |
|---|---|---|---|
| 7c8c33db47 |
@@ -4431,7 +4431,7 @@ mg_create_topwindow (session *sess)
|
|||||||
|
|
||||||
#ifdef G_OS_WIN32
|
#ifdef G_OS_WIN32
|
||||||
parent_win = gtk_widget_get_window (win);
|
parent_win = gtk_widget_get_window (win);
|
||||||
gdk_window_add_filter (parent_win, mg_win32_filter, NULL);
|
gdk_window_add_filter (parent_win, mg_win32_filter, win);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4464,6 +4464,8 @@ static GdkFilterReturn
|
|||||||
mg_win32_filter (GdkXEvent *xevent, GdkEvent *event, gpointer data)
|
mg_win32_filter (GdkXEvent *xevent, GdkEvent *event, gpointer data)
|
||||||
{
|
{
|
||||||
MSG *msg = (MSG*)xevent;
|
MSG *msg = (MSG*)xevent;
|
||||||
|
GtkWidget *win = GTK_IS_WIDGET (data) ? GTK_WIDGET (data) : NULL;
|
||||||
|
static gboolean handling_syscommand = FALSE;
|
||||||
|
|
||||||
if (!msg)
|
if (!msg)
|
||||||
return GDK_FILTER_CONTINUE;
|
return GDK_FILTER_CONTINUE;
|
||||||
@@ -4480,6 +4482,30 @@ mg_win32_filter (GdkXEvent *xevent, GdkEvent *event, gpointer data)
|
|||||||
return GDK_FILTER_CONTINUE;
|
return GDK_FILTER_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (msg->message == WM_SYSCOMMAND && win && !handling_syscommand)
|
||||||
|
{
|
||||||
|
const UINT command = ((UINT) msg->wParam) & 0xFFF0u;
|
||||||
|
|
||||||
|
if (command == SC_MINIMIZE || command == SC_RESTORE)
|
||||||
|
{
|
||||||
|
handling_syscommand = TRUE;
|
||||||
|
|
||||||
|
if (command == SC_MINIMIZE)
|
||||||
|
{
|
||||||
|
ShowWindow (msg->hwnd, SW_MINIMIZE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ShowWindow (msg->hwnd, SW_RESTORE);
|
||||||
|
ShowWindow (msg->hwnd, SW_SHOW);
|
||||||
|
SetForegroundWindow (msg->hwnd);
|
||||||
|
}
|
||||||
|
|
||||||
|
handling_syscommand = FALSE;
|
||||||
|
return GDK_FILTER_REMOVE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (msg->message == WM_COPYDATA)
|
if (msg->message == WM_COPYDATA)
|
||||||
{
|
{
|
||||||
COPYDATASTRUCT *copy_data = (COPYDATASTRUCT *)msg->lParam;
|
COPYDATASTRUCT *copy_data = (COPYDATASTRUCT *)msg->lParam;
|
||||||
@@ -4609,7 +4635,7 @@ mg_create_tabwindow (session *sess)
|
|||||||
|
|
||||||
#ifdef G_OS_WIN32
|
#ifdef G_OS_WIN32
|
||||||
parent_win = gtk_widget_get_window (win);
|
parent_win = gtk_widget_get_window (win);
|
||||||
gdk_window_add_filter (parent_win, mg_win32_filter, NULL);
|
gdk_window_add_filter (parent_win, mg_win32_filter, win);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user