mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-19 23:49:36 +02:00
Qt: added X11 helper routine SetSkipX11Taskbar() to implement ShowInTaskbar property.
git-svn-id: trunk@26442 -
This commit is contained in:
parent
a04f5338a4
commit
47f86d679e
@ -179,6 +179,7 @@ type
|
||||
{$IFDEF HASX11}
|
||||
function IsCurrentDesktop(AWidget: QWidgetH): Boolean;
|
||||
function GetWindowManager: String;
|
||||
procedure SetSkipX11Taskbar(Widget: QWidgetH; const ASkipTaskBar: Boolean);
|
||||
{$ENDIF}
|
||||
|
||||
const
|
||||
|
@ -1,3 +1,4 @@
|
||||
{%MainUnit qtint.pp}
|
||||
function IsCurrentDesktop(AWidget: QWidgetH): Boolean;
|
||||
var
|
||||
Display: PDisplay;
|
||||
@ -121,3 +122,43 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure SetSkipX11Taskbar(Widget: QWidgetH; const ASkipTaskBar: Boolean);
|
||||
const
|
||||
_NET_WM_STATE_REMOVE = 0;
|
||||
_NET_WM_STATE_ADD = 1;
|
||||
_NET_WM_STATE_TOGGLE = 2;
|
||||
var
|
||||
Display: PDisplay;
|
||||
RootWin: TWindow;
|
||||
ScreenNum: Integer;
|
||||
XClient: TXClientMessageEvent;
|
||||
WMAtom: TAtom;
|
||||
begin
|
||||
Display := QX11Info_display();
|
||||
|
||||
if Display = nil then
|
||||
exit;
|
||||
ScreenNum := QX11Info_appScreen();
|
||||
RootWin := XRootWindow(Display, ScreenNum);
|
||||
|
||||
// _NET_WM_STATE_SKIP_TASKBAR
|
||||
XClient._type := ClientMessage;
|
||||
XClient.window := QWidget_winId(Widget);
|
||||
WMAtom := XInternAtom(Display,'_NET_WM_STATE', False);
|
||||
XClient.message_type := WMAtom;
|
||||
XClient.format := 32;
|
||||
|
||||
if ASkipTaskBar then
|
||||
Xclient.data.l[0] := _NET_WM_STATE_ADD
|
||||
else
|
||||
Xclient.data.l[0] := _NET_WM_STATE_REMOVE;
|
||||
WMAtom := XInternAtom(Display,'_NET_WM_STATE_SKIP_TASKBAR', True);
|
||||
Xclient.data.l[1] := WMAtom;
|
||||
Xclient.data.l[2] := 0;
|
||||
Xclient.data.l[3] := 0;
|
||||
Xclient.data.l[4] := 0;
|
||||
XSendEvent (Display, RootWin, False,
|
||||
SubstructureRedirectMask or SubstructureNotifyMask,
|
||||
@Xclient);
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user