LINUX.ORG.RU
ФорумTalks

Каким образом cairo-dock показывает миниатюры для свернутых окон?


0

0

Поставил cairo-dock, просто посмотреть.
Обратил внимание, на то, что он может показывать миниатюры для свернутых окон.
Вот вопрос, где он их достает?

Миниатюры показываются и в том случае, если окно было свернуто не через док, а просто кнопкой на заголовке окна.
Получается, что док узнает о сворачивании окна уже после его сворачивания (при сворачивании из самого дока, естественно, можно узнать до того и «сфоткать» окно) и дернуть картинку окна ему должно быть неоткуда, ведь когда окно свернуто, то у него уже нет pixmap'а куда рисовать.
Или есть откуда и содержимое окна хранится и если окно свернуто?

Спрашиваю я это вот почему, compiz умеет показывать миниатюры окон только для несвернутых окон и не может для свернутых.
Разработчики говорят (я им писал по irc), что ничего поделать не могут, т.к. когда окно свернуто, то текстуру брать не от куда, «фоткать» окно до сворачивания - не вариант, т.к. это не быстро (как они говорят там какие-то тормоза с glCopyTexSubImage2D), обманывать и не сворачивать (как в kwin) - тоже нельзя, т.к. не все приложения нормально работают, некоторые начинают косячить.
Эту фичу у них давно-давно просят.

А тут, понимаешь, док, берет и показывает миниатюры для свернутых окон.
Вот как он это делает?
О сворачивании окна он может узнать только после того как оно свернуто. Неужели он постоянно обновляет миниатюру для окна пока оно не свернуто (миниатюра актуальная, картинка на момент сворачивания)?

★★★★

ну посмотри в исходниках.

isden ★★★★★ ()

kwin тоже умеет показывать свернутые. Причем эта фича еще и может включаться/выключаться.

pekmop1024 ★★★★★ ()

> Неужели он постоянно обновляет миниатюру для окна пока оно не свернуто

А что в этом странного? Например, в AWN в апплете Shiny Switcher есть даже специальный параметр, с какой частотой обновлять миниатюру окна и воркспейса :-)

Nastishka ★★★★★ ()

Был параметр там похожий на «Показывать скриншот окна..» Только в каком их доков - не помню.

Пока что до уровня 7 максимальный не доросло!

Deleted ()
Ответ на: комментарий от PayableOnDeath

Ох, могу ошибаться, но кажется можно попросить отрисоваться окно туда куда мы хотим. А кеширование это псевдо-миниатюры, так оно в винде работает.

TBEPDb ()

Накопал вот чего:

debug   :  (applet-notifications.c:on_window_configured:367)  
  
debug   :  (applet-notifications.c:on_window_configured:367)  
  
message :  (cairo-dock-class-manager.c:cairo_dock_update_inactivity_on_inhibators:679)  
   aleksey@linux: / aussi devient inactive
message :  (applet-draw.c:cd_switcher_draw_main_icon:421)  
  cd_switcher_draw_main_icon (1)
message :  (cairo-dock-applications-manager.c:_on_change_window_state:466)  
    changement de visibilite -> 1
debug   :  (cairo-dock-X-utilities.c:cairo_dock_get_pixbuf_from_pixmap:450)  
  cairo_dock_get_pixbuf_from_pixmap (71303173) : 915x643x24 (0;0)
debug   :  (cairo-dock-X-utilities.c:cairo_dock_get_pixbuf_from_pixmap:458)  
  pas d'objet GDK present, on en alloue un nouveau
debug   :  (cairo-dock-X-utilities.c:cairo_dock_get_pixbuf_from_pixmap:472)  
    pColormap : 1b55820  (pScreen:1b281a0)
debug   :  (cairo-dock-X-utilities.c:cairo_dock_get_pixbuf_from_pixmap:491)  
    on lui ajoute de la transparence
debug   :  (cairo-dock-application-factory.c:cairo_dock_create_surface_from_xpixmap:109)  
  window pixmap : 915x643
debug   :  (cairo-dock-draw-opengl.c:cairo_dock_create_texture_from_surface:726)  
  + texture 52 generee (2437d50, 160x160)
debug   :  (cairo-dock-load.c:cairo_dock_fill_one_icon_buffer:449)  
  cairo_dock_fill_one_icon_buffer (aleksey — обозреватель файлов) -> 64,00x64,00
message :  (cairo-dock-class-manager.c:cairo_dock_update_activity_on_inhibators:656)  
   aleksey@linux: / aussi devient active
message :  (cairo-dock-animations.c:cairo_dock_start_icon_animation:758)  
  cairo_dock_start_icon_animation (aleksey@linux: /, 1)
message :  (applet-draw.c:cd_switcher_draw_main_icon:421)  
  cd_switcher_draw_main_icon (1)

Так это что получается? Можно получить изображение свернутого окна? (Сейчас смотрю исходники, похоже на то)

Но почему так нельзя для compiz'а?

ls-h ★★★★ ()
Ответ на: комментарий от ls-h

Спросил у разработчиков компиза, они говорят, что в принципе,
так можно. Но делать так почему-то не собираются (не сказали почему).

А давайте писать им фич-реквесты с просьбой сделать миниатюры для свернутых окон!

ls-h ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.