Page 1 of 1

рабочие столы

PostPosted: Wed Jul 08, 2009 5:34 am
by unera
имеется некоторая недоработка (как мне кажется)

если не закрыли окно GD и переключились на другой рабочий стол, то кликай не кликай по иконке в трее на текущем рабочем столе ничего не изменится.

можно ли сделать пару вариантов в настройки, как-то например:

  1. если стоит галочка в настройках, то по клике на иконе перемещаем окно GD на текущий рабочий стол (как это сделать можно посмотреть например в исходниках wmctrl)
  2. если стоит другая галочка в настройках (или не стоит первая), то по клике на иконе переключаем рабочий стол туда где открыт GD

Re: рабочие столы

PostPosted: Wed Jul 08, 2009 7:53 am
by ikm
Полагаю, это зависит только от WM. У меня в kde4 работало все как надо - появлялось на текущем столе.

Re: рабочие столы

PostPosted: Wed Jul 08, 2009 8:20 am
by unera
KDE просто делает много чего такого чего нет в стандартах.
вообще без явных команд оконному менеджеру как бы и не нужно перемещать окна со стола на стол.
я думаю большинство WM не будет их перемещать

Re: рабочие столы

PostPosted: Thu Jul 09, 2009 7:56 pm
by ikm
А есть ли рабочие столы в стандартах вообще, или же это черный ящик внутри каждого Wm? Так или иначе, я в такие дебри не залазил - есть и другие проблемы и пробелы в проекте.

Re: рабочие столы

PostPosted: Fri Jul 10, 2009 4:59 am
by unera
ikm wrote:А есть ли рабочие столы в стандартах вообще, или же это черный ящик внутри каждого Wm? Так или иначе, я в такие дебри не залазил - есть и другие проблемы и пробелы в проекте.

я насколько помню, в документации по wmctrl (или в его исходниках) точно была ссылка на стандарты которыми он руководствуется по перемещению окон.

сейчас под рукой тоже нет этого, но все стандарты на freedesktop.org

Re: рабочие столы

PostPosted: Mon Aug 03, 2009 11:35 am
by unera
повесил я принты в функции MainWindow::toggleMainWindow, так вот, когда окошко открыто на другом рабочем столе, то функция isVisible возвращает 1 и функция isMinimized тоже возвращает 1. идет оно по ветке

Code: Select all
showNormal();
activateWindow();
raise();


но при этом в флуксе, fvwm итп не перекидывает со стола на стол.

я так понимаю что showNormal ничего не делает, потому что окно итак Normal (только на другом рабочем столе)

я как воркараунд воткнул себе такой код
Code: Select all
hide();
show();
showNormal();
activateWindow();
raise();


вроде работает, но может выглядеть наверное не очень на WM "с эффектами"

а в доках QT рыл рыл, но не нарыл пока как определить на каком рабочем столе находится данное окно