mirror of
https://github.com/ZoiteChat/zoitechat.git
synced 2026-03-10 07:50:19 +00:00
Added a Windows-only helper (mg_win32_allow_autohide_taskbar) that gets the native HWND and calls SetWindowPos(..., HWND_NOTOPMOST, ...) for non-fullscreen window-state transitions, so a maximized ZoiteChat window no longer blocks the taskbar auto-hide reveal edge.
Hooked that helper into mg_windowstate_cb so it runs whenever the main window state changes (while preserving existing maximize/fullscreen preference handling).
This commit is contained in:
@@ -58,6 +58,36 @@
|
|||||||
|
|
||||||
#ifdef G_OS_WIN32
|
#ifdef G_OS_WIN32
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
#include <gdk/gdkwin32.h>
|
||||||
|
|
||||||
|
static void
|
||||||
|
mg_win32_allow_autohide_taskbar (GtkWindow *window, GdkEventWindowState *event)
|
||||||
|
{
|
||||||
|
GdkWindow *gdk_window;
|
||||||
|
HWND hwnd;
|
||||||
|
|
||||||
|
if (!window || !event)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if ((event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN) != 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
gdk_window = gtk_widget_get_window (GTK_WIDGET (window));
|
||||||
|
if (!gdk_window)
|
||||||
|
return;
|
||||||
|
|
||||||
|
hwnd = gdk_win32_window_get_handle (gdk_window);
|
||||||
|
if (!hwnd)
|
||||||
|
return;
|
||||||
|
|
||||||
|
SetWindowPos (hwnd,
|
||||||
|
HWND_NOTOPMOST,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_NOOWNERZORDER);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define ICON_TAB_DETACH "zc-menu-detach"
|
#define ICON_TAB_DETACH "zc-menu-detach"
|
||||||
@@ -659,6 +689,10 @@ mg_windowstate_cb (GtkWindow *wid, GdkEventWindowState *event, gpointer userdata
|
|||||||
|
|
||||||
menu_set_fullscreen (current_sess->gui, prefs.hex_gui_win_fullscreen);
|
menu_set_fullscreen (current_sess->gui, prefs.hex_gui_win_fullscreen);
|
||||||
|
|
||||||
|
#ifdef G_OS_WIN32
|
||||||
|
mg_win32_allow_autohide_taskbar (wid, event);
|
||||||
|
#endif
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user