• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdelibs API Reference
  • KDE Home
  • Contact Us
 

KDEUI

  • sources
  • kde-4.14
  • kdelibs
  • kdeui
  • windowmanagement
kwindowinfo_x11.cpp
Go to the documentation of this file.
1 /*
2  This file is part of the KDE libraries
3  Copyright (C) 1999 Matthias Ettrich (ettrich@kde.org)
4  Copyright (C) 2007 Lubos Lunak (l.lunak@kde.org)
5 
6  This library is free software; you can redistribute it and/or
7  modify it under the terms of the GNU Library General Public
8  License as published by the Free Software Foundation; either
9  version 2 of the License, or (at your option) any later version.
10 
11  This library is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  Library General Public License for more details.
15 
16  You should have received a copy of the GNU Library General Public License
17  along with this library; see the file COPYING.LIB. If not, write to
18  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19  Boston, MA 02110-1301, USA.
20 */
21 
22 #include "kwindowinfo.h"
23 #include "kwindowsystem.h"
24 
25 #include <kiconloader.h>
26 #include <klocale.h>
27 #include <kdebug.h>
28 #include <kxerrorhandler.h>
29 #include <netwm.h>
30 #include <QtGui/QBitmap>
31 #include <QDesktopWidget>
32 #include <QtGui/QDialog>
33 #include <QtDBus/QtDBus>
34 #include <QtGui/QX11Info>
35 #include <X11/Xatom.h>
36 
37 struct KWindowInfo::Private
38 {
39  Private()
40  : info( NULL )
41  {}
42  ~Private() { delete info; }
43  NETWinInfo* info;
44  WId win_;
45  QString name_;
46  QString iconic_name_;
47  QRect geometry_;
48  QRect frame_geometry_;
49  int ref;
50  bool valid;
51  private:
52  Private( const Private& );
53  void operator=( const Private& );
54 };
55 
56 // KWindowSystem::info() should be updated too if something has to be changed here
57 KWindowInfo::KWindowInfo( WId _win, unsigned long properties, unsigned long properties2 ) : d(new Private)
58 {
59  KXErrorHandler handler;
60  d->ref = 1;
61  if( properties & NET::WMVisibleIconName )
62  properties |= NET::WMIconName | NET::WMVisibleName; // force, in case it will be used as a fallback
63  if( properties & NET::WMVisibleName )
64  properties |= NET::WMName; // force, in case it will be used as a fallback
65  if( properties2 & NET::WM2ExtendedStrut )
66  properties |= NET::WMStrut; // will be used as fallback
67  if( properties & NET::WMWindowType )
68  properties2 |= NET::WM2TransientFor; // will be used when type is not set
69  if( ( properties & NET::WMDesktop ) && KWindowSystem::mapViewport() )
70  properties |= NET::WMGeometry; // for viewports, the desktop (workspace) is determined from the geometry
71  properties |= NET::XAWMState; // force to get error detection for valid()
72  unsigned long props[ 2 ] = { properties, properties2 };
73  d->info = new NETWinInfo( QX11Info::display(), _win, QX11Info::appRootWindow(), props, 2 );
74  d->win_ = _win;
75  if( properties & NET::WMName ) {
76  if( d->info->name() && d->info->name()[ 0 ] != '\0' )
77  d->name_ = QString::fromUtf8( d->info->name() );
78  else
79  d->name_ = KWindowSystem::readNameProperty( _win, XA_WM_NAME );
80  }
81  if( properties & NET::WMIconName ) {
82  if( d->info->iconName() && d->info->iconName()[ 0 ] != '\0' )
83  d->iconic_name_ = QString::fromUtf8( d->info->iconName());
84  else
85  d->iconic_name_ = KWindowSystem::readNameProperty( _win, XA_WM_ICON_NAME );
86  }
87  if( properties & ( NET::WMGeometry | NET::WMFrameExtents )) {
88  NETRect frame, geom;
89  d->info->kdeGeometry( frame, geom );
90  d->geometry_.setRect( geom.pos.x, geom.pos.y, geom.size.width, geom.size.height );
91  d->frame_geometry_.setRect( frame.pos.x, frame.pos.y, frame.size.width, frame.size.height );
92  }
93  d->valid = !handler.error( false ); // no sync - NETWinInfo did roundtrips
94 }
95 
96 // this one is only to make QList<> or similar happy
97 KWindowInfo::KWindowInfo()
98  : d( NULL )
99 {
100 }
101 
102 KWindowInfo::~KWindowInfo()
103 {
104  if( d != NULL ) {
105  if( --d->ref == 0 ) {
106  delete d;
107  }
108  }
109 }
110 
111 KWindowInfo::KWindowInfo( const KWindowInfo& wininfo )
112  : d( wininfo.d )
113 {
114  if( d != NULL )
115  ++d->ref;
116 }
117 
118 KWindowInfo& KWindowInfo::operator=( const KWindowInfo& wininfo )
119 {
120  if( d != wininfo.d ) {
121  if( d != NULL )
122  if( --d->ref == 0 )
123  delete d;
124  d = wininfo.d;
125  if( d != NULL )
126  ++d->ref;
127  }
128  return *this;
129 }
130 
131 bool KWindowInfo::valid( bool withdrawn_is_valid ) const
132 {
133  if( !d->valid )
134  return false;
135  if( !withdrawn_is_valid && mappingState() == NET::Withdrawn )
136  return false;
137  return true;
138 }
139 
140 WId KWindowInfo::win() const
141 {
142  return d->win_;
143 }
144 
145 unsigned long KWindowInfo::state() const
146 {
147 #if !defined(KDE_NO_WARNING_OUTPUT)
148  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS ] & NET::WMState))
149  kWarning(176) << "Pass NET::WMState to KWindowInfo";
150 #endif
151  return d->info->state();
152 }
153 
154 bool KWindowInfo::hasState( unsigned long s ) const
155 {
156  return ( state() & s ) == s;
157 }
158 
159 NET::MappingState KWindowInfo::mappingState() const
160 {
161 #if !defined(KDE_NO_WARNING_OUTPUT)
162  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS ] & NET::XAWMState))
163  kWarning(176) << "Pass NET::XAWMState to KWindowInfo";
164 #endif
165  return d->info->mappingState();
166 }
167 
168 NETExtendedStrut KWindowInfo::extendedStrut() const
169 {
170 #if !defined(KDE_NO_WARNING_OUTPUT)
171  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS2 ] & NET::WM2ExtendedStrut))
172  kWarning(176) << "Pass NET::WM2ExtendedStrut to KWindowInfo";
173 #endif
174  NETExtendedStrut ext = d->info->extendedStrut();
175  NETStrut str = d->info->strut();
176  if( ext.left_width == 0 && ext.right_width == 0 && ext.top_width == 0 && ext.bottom_width == 0
177  && ( str.left != 0 || str.right != 0 || str.top != 0 || str.bottom != 0 )) {
178  // build extended from simple
179  if( str.left != 0 ) {
180  ext.left_width = str.left;
181  ext.left_start = 0;
182  ext.left_end = XDisplayHeight( QX11Info::display(), DefaultScreen( QX11Info::display()));
183  }
184  if( str.right != 0 ) {
185  ext.right_width = str.right;
186  ext.right_start = 0;
187  ext.right_end = XDisplayHeight( QX11Info::display(), DefaultScreen( QX11Info::display()));
188  }
189  if( str.top != 0 ) {
190  ext.top_width = str.top;
191  ext.top_start = 0;
192  ext.top_end = XDisplayWidth( QX11Info::display(), DefaultScreen( QX11Info::display()));
193  }
194  if( str.bottom != 0 ) {
195  ext.bottom_width = str.bottom;
196  ext.bottom_start = 0;
197  ext.bottom_end = XDisplayWidth( QX11Info::display(), DefaultScreen( QX11Info::display()));
198  }
199  }
200  return ext;
201 }
202 
203 NET::WindowType KWindowInfo::windowType( int supported_types ) const
204 {
205 #if !defined(KDE_NO_WARNING_OUTPUT)
206  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS ] & NET::WMWindowType))
207  kWarning(176) << "Pass NET::WMWindowType to KWindowInfo";
208 #endif
209  if( !d->info->hasWindowType()) { // fallback, per spec recommendation
210  if( transientFor() != None ) { // dialog
211  if( supported_types & NET::DialogMask )
212  return NET::Dialog;
213  } else {
214  if( supported_types & NET::NormalMask )
215  return NET::Normal;
216  }
217  }
218  return d->info->windowType( supported_types );
219 }
220 
221 QString KWindowInfo::visibleNameWithState() const
222 {
223  QString s = visibleName();
224  if ( isMinimized() ) {
225  s.prepend(QLatin1Char('('));
226  s.append(QLatin1Char(')'));
227  }
228  return s;
229 }
230 
231 QString KWindowInfo::visibleName() const
232 {
233 #if !defined(KDE_NO_WARNING_OUTPUT)
234  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS ] & NET::WMVisibleName))
235  kWarning(176) << "Pass NET::WMVisibleName to KWindowInfo";
236 #endif
237  return d->info->visibleName() && d->info->visibleName()[ 0 ] != '\0'
238  ? QString::fromUtf8(d->info->visibleName()) : name();
239 }
240 
241 QString KWindowInfo::name() const
242 {
243 #if !defined(KDE_NO_WARNING_OUTPUT)
244  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS ] & NET::WMName))
245  kWarning(176) << "Pass NET::WMName to KWindowInfo";
246 #endif
247  return d->name_;
248 }
249 
250 QString KWindowInfo::visibleIconNameWithState() const
251 {
252  QString s = visibleIconName();
253  if ( isMinimized() ) {
254  s.prepend(QLatin1Char('('));
255  s.append(QLatin1Char(')'));
256  }
257  return s;
258 }
259 
260 QString KWindowInfo::visibleIconName() const
261 {
262 #if !defined(KDE_NO_WARNING_OUTPUT)
263  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS ] & NET::WMVisibleIconName))
264  kWarning(176) << "Pass NET::WMVisibleIconName to KWindowInfo";
265 #endif
266  if( d->info->visibleIconName() && d->info->visibleIconName()[ 0 ] != '\0' )
267  return QString::fromUtf8( d->info->visibleIconName());
268  if( d->info->iconName() && d->info->iconName()[ 0 ] != '\0' )
269  return QString::fromUtf8( d->info->iconName());
270  if( !d->iconic_name_.isEmpty())
271  return d->iconic_name_;
272  return visibleName();
273 }
274 
275 QString KWindowInfo::iconName() const
276 {
277 #if !defined(KDE_NO_WARNING_OUTPUT)
278  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS ] & NET::WMIconName))
279  kWarning(176) << "Pass NET::WMIconName to KWindowInfo";
280 #endif
281  if( d->info->iconName() && d->info->iconName()[ 0 ] != '\0' )
282  return QString::fromUtf8( d->info->iconName());
283  if( !d->iconic_name_.isEmpty())
284  return d->iconic_name_;
285  return name();
286 }
287 
288 bool KWindowInfo::isOnCurrentDesktop() const
289 {
290  return isOnDesktop( KWindowSystem::currentDesktop());
291 }
292 
293 bool KWindowInfo::isOnDesktop( int _desktop ) const
294 {
295 #if !defined(KDE_NO_WARNING_OUTPUT)
296  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS ] & NET::WMDesktop))
297  kWarning(176) << "Pass NET::WMDesktop to KWindowInfo";
298 #endif
299  if( KWindowSystem::mapViewport()) {
300  if( onAllDesktops())
301  return true;
302  return KWindowSystem::viewportWindowToDesktop( d->geometry_ ) == _desktop;
303  }
304  return d->info->desktop() == _desktop || d->info->desktop() == NET::OnAllDesktops;
305 }
306 
307 bool KWindowInfo::onAllDesktops() const
308 {
309 #if !defined(KDE_NO_WARNING_OUTPUT)
310  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS ] & NET::WMDesktop))
311  kWarning(176) << "Pass NET::WMDesktop to KWindowInfo";
312 #endif
313  if( KWindowSystem::mapViewport()) {
314  if( d->info->passedProperties()[ NETWinInfo::PROTOCOLS ] & NET::WMState )
315  return d->info->state() & NET::Sticky;
316  NETWinInfo info( QX11Info::display(), d->win_, QX11Info::appRootWindow(), NET::WMState );
317  return info.state() & NET::Sticky;
318  }
319  return d->info->desktop() == NET::OnAllDesktops;
320 }
321 
322 int KWindowInfo::desktop() const
323 {
324 #if !defined(KDE_NO_WARNING_OUTPUT)
325  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS ] & NET::WMDesktop))
326  kWarning(176) << "Pass NET::WMDesktop to KWindowInfo";
327 #endif
328  if( KWindowSystem::mapViewport()) {
329  if( onAllDesktops())
330  return NET::OnAllDesktops;
331  return KWindowSystem::viewportWindowToDesktop( d->geometry_ );
332  }
333  return d->info->desktop();
334 }
335 
336 QRect KWindowInfo::geometry() const
337 {
338 #if !defined(KDE_NO_WARNING_OUTPUT)
339  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS ] & NET::WMGeometry))
340  kWarning(176) << "Pass NET::WMGeometry to KWindowInfo";
341 #endif
342  return d->geometry_;
343 }
344 
345 QRect KWindowInfo::frameGeometry() const
346 {
347 #if !defined(KDE_NO_WARNING_OUTPUT)
348  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS ] & NET::WMFrameExtents))
349  kWarning(176) << "Pass NET::WMFrameExtents to KWindowInfo";
350 #endif
351  return d->frame_geometry_;
352 }
353 
354 WId KWindowInfo::transientFor() const
355 {
356 #if !defined(KDE_NO_WARNING_OUTPUT)
357  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS2 ] & NET::WM2TransientFor))
358  kWarning(176) << "Pass NET::WM2TransientFor to KWindowInfo";
359 #endif
360  return d->info->transientFor();
361 }
362 
363 WId KWindowInfo::groupLeader() const
364 {
365 #if !defined(KDE_NO_WARNING_OUTPUT)
366  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS2 ] & NET::WM2GroupLeader))
367  kWarning(176) << "Pass NET::WM2GroupLeader to KWindowInfo";
368 #endif
369  return d->info->groupLeader();
370 }
371 
372 QByteArray KWindowInfo::windowClassClass() const
373 {
374 #if !defined(KDE_NO_WARNING_OUTPUT)
375  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS2 ] & NET::WM2WindowClass))
376  kWarning(176) << "Pass NET::WM2WindowClass to KWindowInfo";
377 #endif
378  return d->info->windowClassClass();
379 }
380 
381 QByteArray KWindowInfo::windowClassName() const
382 {
383 #if !defined(KDE_NO_WARNING_OUTPUT)
384  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS2 ] & NET::WM2WindowClass))
385  kWarning(176) << "Pass NET::WM2WindowClass to KWindowInfo";
386 #endif
387  return d->info->windowClassName();
388 }
389 
390 QByteArray KWindowInfo::windowRole() const
391 {
392 #if !defined(KDE_NO_WARNING_OUTPUT)
393  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS2 ] & NET::WM2WindowRole))
394  kWarning(176) << "Pass NET::WM2WindowRole to KWindowInfo";
395 #endif
396  return d->info->windowRole();
397 }
398 
399 QByteArray KWindowInfo::clientMachine() const
400 {
401 #if !defined(KDE_NO_WARNING_OUTPUT)
402  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS2 ] & NET::WM2ClientMachine))
403  kWarning(176) << "Pass NET::WM2ClientMachine to KWindowInfo";
404 #endif
405  return d->info->clientMachine();
406 }
407 
408 bool KWindowInfo::actionSupported( NET::Action action ) const
409 {
410 #if !defined(KDE_NO_WARNING_OUTPUT)
411  if (!(d->info->passedProperties()[ NETWinInfo::PROTOCOLS2 ] & NET::WM2AllowedActions))
412  kWarning(176) << "Pass NET::WM2AllowedActions to KWindowInfo";
413 #endif
414  if( KWindowSystem::allowedActionsSupported())
415  return d->info->allowedActions() & action;
416  else
417  return true; // no idea if it's supported or not -> pretend it is
418 }
419 
420 // see NETWM spec section 7.6
421 bool KWindowInfo::isMinimized() const
422 {
423  if( mappingState() != NET::Iconic )
424  return false;
425  // NETWM 1.2 compliant WM - uses NET::Hidden for minimized windows
426  if(( state() & NET::Hidden ) != 0
427  && ( state() & NET::Shaded ) == 0 ) // shaded may have NET::Hidden too
428  return true;
429  // older WMs use WithdrawnState for other virtual desktops
430  // and IconicState only for minimized
431  return KWindowSystem::icccmCompliantMappingState() ? false : true;
432 }
433 
KWindowSystem::readNameProperty
static QString readNameProperty(WId window, unsigned long atom)
Function that reads and returns the contents of the given text property (WM_NAME, WM_ICON_NAME...
Definition: kwindowsystem_mac.cpp:602
NETStrut
Definition: netwm_def.h:194
NET::WMName
Definition: netwm_def.h:631
NET::Normal
indicates that this is a normal, top-level window
Definition: netwm_def.h:313
KXErrorHandler::error
bool error(bool sync) const
This function returns true if the error flag is set (i.e.
Definition: kxerrorhandler.cpp:99
QString::append
QString & append(QChar ch)
NETStrut::bottom
int bottom
Bottom border of the strut.
Definition: netwm_def.h:218
NETExtendedStrut::bottom_width
int bottom_width
Bottom border of the strut, width and range.
Definition: netwm_def.h:178
kdebug.h
KWindowInfo::iconName
QString iconName() const
Returns the name of the window that should be shown in taskbar and all other "iconic" representations...
Definition: kwindowinfo_mac.cpp:253
KWindowInfo::windowType
NET::WindowType windowType(int supported_types) const
Returns the window type of this window (see NET::WindowType).
Definition: kwindowinfo_mac.cpp:210
QByteArray
KWindowInfo::visibleName
QString visibleName() const
Returns the visible name of the window (i.e.
Definition: kwindowinfo_mac.cpp:225
KWindowInfo::operator=
KWindowInfo & operator=(const KWindowInfo &)
Definition: kwindowinfo_mac.cpp:152
KWindowInfo::visibleIconName
QString visibleIconName() const
Returns the visible name of the window that should be shown in taskbar and all other "iconic" represe...
Definition: kwindowinfo_mac.cpp:248
NETExtendedStrut::top_end
int top_end
Definition: netwm_def.h:173
KWindowInfo::frameGeometry
QRect frameGeometry() const
Returns the frame geometry of the window, i.e.
Definition: kwindowinfo_mac.cpp:283
QX11Info::appRootWindow
Qt::HANDLE appRootWindow(int screen)
NETStrut::right
int right
Right border of the strut.
Definition: netwm_def.h:208
QString::prepend
QString & prepend(QChar ch)
QX11Info::display
Display * display()
NETPoint::y
int y
y coordinate
Definition: netwm_def.h:52
NET::XAWMState
Definition: netwm_def.h:642
NET::Iconic
indicates that the client window is not visible, but its icon is.
Definition: netwm_def.h:547
KWindowSystem::viewportWindowToDesktop
static int viewportWindowToDesktop(const QRect &r)
Definition: kwindowsystem_x11.cpp:1072
NETWinInfo::PROTOCOLS
Definition: netwm.h:835
NETExtendedStrut::bottom_end
int bottom_end
Definition: netwm_def.h:178
NET::NormalMask
Definition: netwm_def.h:385
KWindowInfo
Information about a window.
Definition: kwindowinfo.h:35
KWindowInfo::hasState
bool hasState(unsigned long s) const
Returns true if the window has the given state flag set (see the NET::State enum for details)...
Definition: kwindowinfo_mac.cpp:180
NET::WM2WindowClass
Definition: netwm_def.h:686
NET::WM2GroupLeader
Definition: netwm_def.h:679
kiconloader.h
NETExtendedStrut
Partial strut class for NET classes.
Definition: netwm_def.h:152
KWindowInfo::state
unsigned long state() const
Returns the window's state flags (see the NET::State enum for details).
Definition: kwindowinfo_mac.cpp:175
klocale.h
ref
void ref()
KWindowInfo::visibleNameWithState
QString visibleNameWithState() const
Returns a visible name with state.
Definition: kwindowinfo_mac.cpp:215
NET::WMVisibleIconName
Definition: netwm_def.h:647
NETExtendedStrut::top_start
int top_start
Definition: netwm_def.h:173
KWindowInfo::clientMachine
QByteArray clientMachine() const
Returns the client machine for the window (i.e.
Definition: kwindowinfo_x11.cpp:399
NETStrut::left
int left
Left border of the strut.
Definition: netwm_def.h:203
KWindowInfo::isMinimized
bool isMinimized() const
Returns true if the window is minimized.
Definition: kwindowinfo_mac.cpp:185
NET::Hidden
indicates that a window should not be visible on the screen (e.g.
Definition: netwm_def.h:475
NET::WMStrut
Definition: netwm_def.h:636
NET::DialogMask
Definition: netwm_def.h:390
KWindowInfo::onAllDesktops
bool onAllDesktops() const
Returns true if the window is on all desktops (equal to desktop()==NET::OnAllDesktops).
Definition: kwindowinfo_mac.cpp:268
NET::MappingState
MappingState
Client window mapping state.
Definition: netwm_def.h:533
None
NET::Withdrawn
indicates that neither the client window nor its icon is visible.
Definition: netwm_def.h:541
QRect
KWindowInfo::actionSupported
bool actionSupported(NET::Action action) const
Returns true if the given action is currently supported for the window by the window manager...
Definition: kwindowinfo_mac.cpp:288
KWindowInfo::mappingState
NET::MappingState mappingState() const
Returns the mapping state of the window (see NET::MappingState).
Definition: kwindowinfo_mac.cpp:199
KWindowSystem::currentDesktop
static int currentDesktop()
Returns the current virtual desktop.
Definition: kwindowsystem_mac.cpp:384
NETRect::size
NETSize size
Size of the rectangle.
Definition: netwm_def.h:106
QString::fromUtf8
QString fromUtf8(const char *str, int size)
NET::WM2WindowRole
Definition: netwm_def.h:687
NET::WM2TransientFor
Definition: netwm_def.h:678
netwm.h
KWindowInfo::extendedStrut
NETExtendedStrut extendedStrut() const
Returns the window extended (partial) strut.
Definition: kwindowinfo_mac.cpp:204
NETExtendedStrut::right_end
int right_end
Definition: netwm_def.h:168
KWindowInfo::valid
bool valid(bool withdrawn_is_valid=false) const
Returns false if this window info is not valid (most probably the given window doesn't exist)...
Definition: kwindowinfo_mac.cpp:165
NET::WindowType
WindowType
Window type.
Definition: netwm_def.h:305
KWindowSystem::icccmCompliantMappingState
static bool icccmCompliantMappingState()
Definition: kwindowsystem_mac.cpp:542
NETPoint::x
int x
x coordinate.
Definition: netwm_def.h:52
KWindowInfo::~KWindowInfo
~KWindowInfo()
Definition: kwindowinfo_mac.cpp:136
KWindowInfo::windowRole
QByteArray windowRole() const
Returns the window role for the window (i.e.
Definition: kwindowinfo_x11.cpp:390
NET::WMIconName
Definition: netwm_def.h:646
NETRect::pos
NETPoint pos
Position of the rectangle.
Definition: netwm_def.h:99
KXErrorHandler
This class simplifies handling of X errors.
Definition: kxerrorhandler.h:62
QString
KWindowInfo::groupLeader
WId groupLeader() const
Returns the leader window for the group the window is in, if any.
Definition: kwindowinfo_x11.cpp:363
NETExtendedStrut::top_width
int top_width
Top border of the strut, width and range.
Definition: netwm_def.h:173
KWindowInfo::isOnDesktop
bool isOnDesktop(int desktop) const
Returns true if the window is on the given virtual desktop.
Definition: kwindowinfo_mac.cpp:263
kxerrorhandler.h
NET::WMFrameExtents
Definition: netwm_def.h:643
NET::WMWindowType
Definition: netwm_def.h:634
QLatin1Char
NETRect
Simple rectangle class for NET classes.
Definition: netwm_def.h:93
KWindowInfo::geometry
QRect geometry() const
Returns the position and size of the window contents.
Definition: kwindowinfo_mac.cpp:278
KWindowInfo::win
WId win() const
Returns the window identifier.
Definition: kwindowinfo_mac.cpp:170
KWindowSystem::mapViewport
static bool mapViewport()
Definition: kwindowsystem_x11.cpp:1042
NET::WM2ExtendedStrut
Definition: netwm_def.h:683
KStandardGuiItem::properties
KGuiItem properties()
Returns the 'Properties' gui item.
Definition: kstandardguiitem.cpp:299
NETSize::width
int width
Width.
Definition: netwm_def.h:79
NETWinInfo::PROTOCOLS2
Definition: netwm.h:835
NET::Dialog
indicates that this is a dialog window
Definition: netwm_def.h:336
NET::Shaded
indicates that the window is shaded (rolled-up).
Definition: netwm_def.h:453
KWindowSystem::allowedActionsSupported
static bool allowedActionsSupported()
Returns true if the WM announces which actions it allows for windows.
Definition: kwindowsystem_mac.cpp:597
NETExtendedStrut::right_start
int right_start
Definition: netwm_def.h:168
KWindowInfo::transientFor
WId transientFor() const
Returns the WM_TRANSIENT_FOR property for the window, i.e.
Definition: kwindowinfo_x11.cpp:354
KWindowInfo::windowClassName
QByteArray windowClassName() const
Returns the name component of the window class for the window (i.e.
Definition: kwindowinfo_win.cpp:293
NETExtendedStrut::right_width
int right_width
Right border of the strut, width and range.
Definition: netwm_def.h:168
kwindowsystem.h
kWarning
static QDebug kWarning(bool cond, int area=KDE_DEFAULT_DEBUG_AREA)
NETExtendedStrut::left_end
int left_end
Definition: netwm_def.h:163
NETExtendedStrut::bottom_start
int bottom_start
Definition: netwm_def.h:178
KWindowInfo::name
QString name() const
Returns the name of the window, as specified by the application, without any modifications.
Definition: kwindowinfo_mac.cpp:230
NET::Action
Action
Actions that can be done with a window (_NET_WM_ALLOWED_ACTIONS).
Definition: netwm_def.h:553
NETWinInfo
Common API for application window properties/protocols.
Definition: netwm.h:829
NETSize::height
int height
Height.
Definition: netwm_def.h:79
NETExtendedStrut::left_width
int left_width
Left border of the strut, width and range.
Definition: netwm_def.h:163
KWindowInfo::desktop
int desktop() const
Returns the virtual desktop this window is on (NET::OnAllDesktops if the window is on all desktops)...
Definition: kwindowinfo_mac.cpp:273
KWindowInfo::isOnCurrentDesktop
bool isOnCurrentDesktop() const
Returns true if the window is on the currently active virtual desktop.
Definition: kwindowinfo_mac.cpp:258
KWindowInfo::windowClassClass
QByteArray windowClassClass() const
Returns the class component of the window class for the window (i.e.
Definition: kwindowinfo_win.cpp:277
NET::WMDesktop
Definition: netwm_def.h:633
KWindowInfo::visibleIconNameWithState
QString visibleIconNameWithState() const
Returns a visible name with state.
Definition: kwindowinfo_mac.cpp:238
NETStrut::top
int top
Top border of the strut.
Definition: netwm_def.h:213
NET::WMState
Definition: netwm_def.h:635
NETExtendedStrut::left_start
int left_start
Definition: netwm_def.h:163
NET::OnAllDesktops
Definition: netwm_def.h:704
NET::WMVisibleName
Definition: netwm_def.h:632
NET::WM2ClientMachine
Definition: netwm_def.h:688
KWindowInfo::KWindowInfo
KWindowInfo()
Definition: kwindowinfo_mac.cpp:131
kwindowinfo.h
NET::WMGeometry
Definition: netwm_def.h:648
NET::WM2AllowedActions
Definition: netwm_def.h:680
NET::Sticky
indicates that the Window Manager SHOULD keep the window's position fixed on the screen, even when the virtual desktop scrolls.
Definition: netwm_def.h:437
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:24:00 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KDEUI

Skip menu "KDEUI"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Modules
  • Related Pages

kdelibs API Reference

Skip menu "kdelibs API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal