Make window activation specific to the GUI platform, in the hope of finding a workaround to the fact that window activation request is impossible in Wayland.
[GB.QT5] * BUG: Make window activation specific to the GUI platform, in the hope of finding a workaround to the fact that window activation request is impossible in Wayland.
This commit is contained in:
parent
5d0c54bca2
commit
2eeae0aea6
4 changed files with 17 additions and 3 deletions
|
@ -2880,9 +2880,10 @@ void MyMainWindow::setBetterMask(QPixmap &bg)
|
||||||
void MyMainWindow::activate(void)
|
void MyMainWindow::activate(void)
|
||||||
{
|
{
|
||||||
#ifdef QT5
|
#ifdef QT5
|
||||||
if (!MAIN_platform_is_wayland)
|
PLATFORM.Window.Activate(this);
|
||||||
|
#else
|
||||||
|
activateWindow();
|
||||||
#endif
|
#endif
|
||||||
activateWindow();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MyMainWindow::focusNextPrevChild(bool next)
|
bool MyMainWindow::focusNextPrevChild(bool next)
|
||||||
|
|
|
@ -72,6 +72,7 @@ typedef
|
||||||
void (*SetProperties)(QWidget *window, int which, QT_WINDOW_PROP *prop);
|
void (*SetProperties)(QWidget *window, int which, QT_WINDOW_PROP *prop);
|
||||||
void (*SetUserTime)(QWidget *window, int timestamp);
|
void (*SetUserTime)(QWidget *window, int timestamp);
|
||||||
void (*SetTransientFor)(QWidget *window, QWidget *parent);
|
void (*SetTransientFor)(QWidget *window, QWidget *parent);
|
||||||
|
void (*Activate)(QWidget *window);
|
||||||
} Window;
|
} Window;
|
||||||
}
|
}
|
||||||
QT_PLATFORM_INTERFACE;
|
QT_PLATFORM_INTERFACE;
|
||||||
|
|
|
@ -171,6 +171,11 @@ static void window_set_transient_for(QWidget *window, QWidget *parent)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void window_activate(QWidget *win)
|
||||||
|
{
|
||||||
|
win->windowHandle()->alert(0);
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -198,6 +203,7 @@ void *GB_QT5_WAYLAND_1[] EXPORT = {
|
||||||
(void *)window_set_properties,
|
(void *)window_set_properties,
|
||||||
(void *)window_set_user_time,
|
(void *)window_set_user_time,
|
||||||
(void *)window_set_transient_for,
|
(void *)window_set_transient_for,
|
||||||
|
(void *)window_activate,
|
||||||
|
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
|
@ -357,6 +357,11 @@ static void window_set_transient_for(QWidget *window, QWidget *parent)
|
||||||
X11_set_transient_for(window->effectiveWinId(), parent->effectiveWinId());
|
X11_set_transient_for(window->effectiveWinId(), parent->effectiveWinId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void window_activate(QWidget *window)
|
||||||
|
{
|
||||||
|
window->activateWindow();
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
|
|
||||||
static void x11_set_event_filter(int (*filter)(XEvent *))
|
static void x11_set_event_filter(int (*filter)(XEvent *))
|
||||||
|
@ -391,6 +396,7 @@ void *GB_QT5_X11_1[] EXPORT = {
|
||||||
(void *)window_set_properties,
|
(void *)window_set_properties,
|
||||||
(void *)window_set_user_time,
|
(void *)window_set_user_time,
|
||||||
(void *)window_set_transient_for,
|
(void *)window_set_transient_for,
|
||||||
|
(void *)window_activate,
|
||||||
|
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue