From c9dc16858750646a77530fc2198a632dcd25d622 Mon Sep 17 00:00:00 2001 From: "lorthiois@bbsoft.fr" Date: Thu, 30 Oct 2008 15:39:24 +0000 Subject: [PATCH] fixed issue and test svn git-svn-id: http://tint2.googlecode.com/svn/trunk@14 121b4492-b84c-0410-8b4c-0d4edfb3f3cc --- AUTHORS | 10 +++++--- ChangeLog | 8 +++---- README | 1 + src/Makefile | 9 ++++++- src/panel.c | 37 ----------------------------- src/server.c | 51 +++++++++++++++++++++++++++++++--------- src/server.h | 2 ++ src/tint.c | 3 ++- src/tint2 | Bin 52672 -> 52668 bytes src/util/area.h | 27 +++++++-------------- src/util/window.c | 3 +-- tintrc03 | 58 +++++++++++++++++++++++++--------------------- tintrc04 | 57 +++++++++++++++++++++------------------------ 13 files changed, 130 insertions(+), 136 deletions(-) diff --git a/AUTHORS b/AUTHORS index 2a12de2..23d6bf1 100644 --- a/AUTHORS +++ b/AUTHORS @@ -4,6 +4,10 @@ Developed by: Contributors: - Daniel Moerner , man page - - + Daniel Moerner : man page and debian package + Doug Barton : freebsd package + James Buren : Frugalware package + Pierre-Emmanuel Andre : openbsd port + Redroar : arch package + + diff --git a/ChangeLog b/ChangeLog index ffde567..4004d80 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,7 @@ - -2008-09-30 -- change tintrc format - background and border can use linear gradiant -- update documentation +2008-10-28 +- fixed issue : "untitled task", "task button did not update", "window don't shade", + "error if I don't do 'make install", "Makefile error" 2008-09-24 - change tintrc format diff --git a/README b/README index a250d34..018c197 100644 --- a/README +++ b/README @@ -16,3 +16,4 @@ check http://code.google.com/p/tint2/ for latest release, documentation and sample config file. + diff --git a/src/Makefile b/src/Makefile index 3eecbbb..4da3f66 100644 --- a/src/Makefile +++ b/src/Makefile @@ -7,13 +7,16 @@ ifndef DESTDIR ifndef PREFIX BINDIR=/usr/bin XDG_CONFIG_DIR=/etc/xdg + MAN_DIR=/usr/share/man else BINDIR=$(PREFIX)/bin XDG_CONFIG_DIR=/etc/xdg + MAN_DIR=/usr/share/man endif else BINDIR=$(DESTDIR)/usr/bin XDG_CONFIG_DIR=$(DESTDIR)/etc/xdg + MAN_DIR=$(DESTDIR)/usr/share/man endif @@ -24,13 +27,17 @@ $(PROGNAME): $(FILES) $(SYSTRAYOBJ) install: mkdir -p $(BINDIR) mkdir -p $(XDG_CONFIG_DIR)/tint2 + mkdir -p $(MANDIR) + mkdir -p $(MANDIR)/man1 install $(PROGNAME) $(BINDIR) cp -f ../tintrc06 $(XDG_CONFIG_DIR)/tint2/tint2rc - cp -f ../doc/man/tint2.1 /usr/man/man1 + cp -f ../doc/man/tint2.1 $(MAN_DIR)/man1 uninstall: rm -f $(BINDIR)/$(PROGNAME) + rm -f $(MAN_DIR)/man1/tint2.1 clean: rm -f $(PROGNAME) +.PHONY: clean uninstall install diff --git a/src/panel.c b/src/panel.c index 2e1c228..208922c 100644 --- a/src/panel.c +++ b/src/panel.c @@ -36,43 +36,6 @@ void visual_refresh () draw (&panel.area); refresh (&panel.area); -/* -pour version 0.7 -gestion du systray - positionnement et taille fixe du systray (objet systray) - détection des notifications (détection des icones, ajout a la liste) - ajouter la transparence des icones - gérer le redimentionnement des éléments - => voir si lon peut faire abstraction sur le positionnement des objets ? - sachant que certains objets (task, taskbar) on une taille définit par l'extérieur - et d'autres objets (clock, systray) on une taille définit par l'intérieur - -gestion du layout - voir le positionnement des taskbar, task et systray - définir panel_layout dans la configuration - comment gérer le multi panel avec des layouts différents - -vérifier le niveau d'abstraction du code - utiliser la fonction draw(obj) récurrente sur Taskbar, Task, Systray, Clock - est ce compatible avec l'affichage de la tache active et les changement de taille -> redessine le panel - -correction de bugs : - memory, segfault - background - remettre en place single_desktop avec nouveau layout - remettre en place multi_monitor avec nouveau layout - vérifier le changement de configuration - -pour version 0.8 -gestion du thème - voir la gestion du dégradé sur le bord et le fond (inkscape) - faut-il trois coordonnées de padding x, y, x inter-objects - -gestion du zoom - définir le zoom du panel - -*/ - if (panel.clock.time1_format) { if (panel.clock.area.redraw) panel.refresh = 1; diff --git a/src/server.c b/src/server.c index cdfa969..3f75f21 100644 --- a/src/server.c +++ b/src/server.c @@ -66,6 +66,7 @@ void server_init_atoms () server.atom._WIN_LAYER = XInternAtom (server.dsp, "_WIN_LAYER", False); server.atom._NET_WM_STRUT_PARTIAL = XInternAtom (server.dsp, "_NET_WM_STRUT_PARTIAL", False); server.atom.WM_NAME = XInternAtom(server.dsp, "WM_NAME", False); + server.atom.__SWM_VROOT = XInternAtom(server.dsp, "__SWM_VROOT", False); } @@ -133,12 +134,49 @@ void *server_get_property (Window win, Atom at, Atom type, int *num_results) } +Pixmap server_create_pixmap (int width, int height) +{ + return XCreatePixmap (server.dsp, server.root_win, width, height, server.depth); +} + + +Pixmap get_root_pixmap () +{ + Pixmap ret; + Window root = RootWindow(server.dsp, server.screen); + + ret = None; + int act_format, c = 2 ; + u_long nitems ; + u_long bytes_after ; + u_char *prop ; + Atom dummy_id; + + do { + if (XGetWindowProperty(server.dsp, root, server.atom._XROOTPMAP_ID, 0, 1, + False, XA_PIXMAP, &dummy_id, &act_format, + &nitems, &bytes_after, &prop) == Success) { + if (prop) { + ret = *((Pixmap *)prop); + XFree(prop); + break; + } + } + } while (--c > 0); + + return ret; +} + + +/* Pixmap get_root_pixmap () { // conky capture correctement le fond d'écran en xlib !! Pixmap root_pixmap; unsigned long *res; + server.root_win = window_get_root(); + res = server_get_property (server.root_win, server.atom._XROOTPMAP_ID, XA_PIXMAP, 0); if (res) { root_pixmap = *((Drawable*) res); @@ -149,18 +187,9 @@ Pixmap get_root_pixmap () printf("get_root_pixmap incorrect\n"); // try _XSETROOT_ID } - return 0; -} - - - - -Pixmap server_create_pixmap (int width, int height) -{ - return XCreatePixmap (server.dsp, server.root_win, width, height, server.depth); -} - +} +*/ void server_refresh_root_pixmap () { diff --git a/src/server.h b/src/server.h index 6bb4060..c4225db 100644 --- a/src/server.h +++ b/src/server.h @@ -51,6 +51,7 @@ typedef struct Global_atom Atom _WIN_LAYER; Atom _NET_WM_STRUT_PARTIAL; Atom WM_NAME; + Atom __SWM_VROOT; } Global_atom; @@ -97,6 +98,7 @@ void server_catch_error (Display *d, XErrorEvent *ev); void server_init_atoms (); Pixmap server_create_pixmap (int width, int height); void get_monitors(); +Pixmap get_root_pixmap(); #endif diff --git a/src/tint.c b/src/tint.c index 42581ff..56cbc1c 100644 --- a/src/tint.c +++ b/src/tint.c @@ -75,7 +75,7 @@ void init () } server_init_atoms (); server.screen = DefaultScreen (server.dsp); - server.root_win = RootWindow (server.dsp, server.screen); + server.root_win = RootWindow(server.dsp, server.screen); server.depth = DefaultDepth (server.dsp, server.screen); server.visual = DefaultVisual (server.dsp, server.screen); server.desktop = server_get_current_desktop (); @@ -407,6 +407,7 @@ load_config: break; case PropertyNotify: + //printf("PropertyNotify\n"); event_property_notify (e.xproperty.window, e.xproperty.atom); break; diff --git a/src/tint2 b/src/tint2 index 08a61162a17f9f8f00d58bc8f1fcc52c3187da7a..47b576f2af22e3499ae5c3cc850e3a4ea4c51f1e 100755 GIT binary patch delta 10922 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 F_rHP}KL-E+ delta 10881 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 B3z+}_ diff --git a/src/util/area.h b/src/util/area.h index 2ad26aa..1dc6f18 100644 --- a/src/util/area.h +++ b/src/util/area.h @@ -1,17 +1,15 @@ /************************************************************************** -* base class for all objects (panel, taskbar, task, systray, clock, ...). -* each object 'inherit' Area and implement draw_foreground if needed. +* Copyright (C) 2008 thierry lorthiois (lorthiois@bbsoft.fr) * -* Area is at the begining of each object so &object == &area. +* base class for all graphical objects (panel, taskbar, task, systray, clock, ...). +* Area is at the begining of each graphical object so &object == &area. +* +* Area manage the background and border drawing, size and padding. +* Area manage also the tree of visible objects +* panel -> taskbars -> tasks +* -> clock +* -> systray -> icons * -* une zone comprend : -* - fond : couleur / opacité -* - contenu -* - largeur / hauteur -* - paddingx / paddingy -* - pixmap mémorisant l'affichage (évite de redessiner l'objet à chaque rafraichissement) -* - une liste de sous objets -* * un objet comprend les actions: * 1) redraw(obj) * force l'indicateur 'redraw' sur l'objet @@ -34,13 +32,8 @@ * 6) voir refresh(obj) * * Implémentation : -* - tous les éléments du panel possèdent 1 objet en début de structure -* panel, taskbar, systray, task, ... * - l'objet est en fait une zone (area). * l'imbrication des sous objet doit permettre de gérer le layout. -* - on a une relation 1<->1 entre un objet et une zone graphique -* les taskbar affichent toutes les taches. -* donc on utilise la liste des objets pour gérer la liste des taches. * - les taches ont 2 objets : l'un pour la tache inactive et l'autre pour la tache active * draw(obj) est appellé sur le premier objet automatiquement * et draw_foreground(obj) lance l'affichage du 2 ieme objet @@ -60,8 +53,6 @@ * 3. tester l'implémentation et évaluer les autres abstractions possibles ? * * 4. comment gérer le groupage des taches -* 5. la clock est le contenu du panel. mais elle ne tiens pas compte du padding vertical ? -* c'est ok pour la clock. voir l'impact sur paddingx ? * * voir resize_taskbar(), resize_clock() et resize_tasks() * voir les taches actives et inactives ?? une seule tache est active ! diff --git a/src/util/window.c b/src/util/window.c index ebbdce0..b265d6f 100644 --- a/src/util/window.c +++ b/src/util/window.c @@ -58,7 +58,7 @@ void set_close (Window win) void window_toggle_shade (Window win) { - send_event32 (win, server.atom._NET_WM_STATE, 2, 0); + send_event32 (win, server.atom._NET_WM_STATE, 2, server.atom._NET_WM_STATE_SHADED); } @@ -261,4 +261,3 @@ void get_text_size(PangoFontDescription *font, int *height_ink, int *height, int } - diff --git a/tintrc03 b/tintrc03 index 914dfd1..0106f89 100644 --- a/tintrc03 +++ b/tintrc03 @@ -5,25 +5,29 @@ #--------------------------------------------- # BACKGROUND AND BORDER #--------------------------------------------- -rounded = 1 -border_width = 1 -background_color = #282828 100 -border_color = #000000 100 - -rounded = 1 +rounded = 5 border_width = 1 -background_color = #282828 100 -#background_color = #3b3b3b 100 -border_color = #cccccc 100 +background_color = #ffffff 40 +border_color = #ffffff 70 + +rounded = 4 +border_width = 0 +background_color = #ffffff 0 +border_color = #d1d1d1 0 + +rounded = 4 +border_width = 0 +background_color = #ffffff 30 +border_color = #d1d1d1 14 #--------------------------------------------- # PANEL #--------------------------------------------- panel_monitor = 1 -panel_position = bottom right -panel_size = 0 27 -panel_margin = 0 0 -panel_padding = 3 2 +panel_position = bottom center +panel_size = 1000 25 +panel_margin = 0 7 +panel_padding = 6 0 font_shadow = 0 panel_background_id = 1 @@ -31,7 +35,7 @@ panel_background_id = 1 # TASKBAR #--------------------------------------------- taskbar_mode = multi_desktop -taskbar_padding = 4 0 +taskbar_padding = 2 3 taskbar_background_id = 0 #--------------------------------------------- @@ -39,14 +43,14 @@ taskbar_background_id = 0 #--------------------------------------------- task_icon = 1 task_text = 1 -task_width = 200 +task_width = 150 task_centered = 1 -task_padding = 1 3 -task_font = sans 8 -task_font_color = #ffffff 40 -task_active_font_color = #ffffff 100 -task_background_id = 0 -task_active_background_id = 2 +task_padding = 3 2 +task_font = myriad pro 8 +task_font_color = #000000 70 +task_active_font_color = #000000 100 +task_background_id = 2 +task_active_background_id = 3 #--------------------------------------------- # SYSTRAY @@ -57,12 +61,12 @@ task_active_background_id = 2 #--------------------------------------------- # CLOCK #--------------------------------------------- -time1_format = %H:%M:%S -time1_font = sans 7 -time2_format = %A %d %B -time2_font = sans 7 -clock_font_color = #ffffff 100 -clock_padding = 0 0 +time1_format = %H:%M +time1_font = sans bold 12 +#time2_format = %A %d %B +#time2_font = sans bold 10 +clock_font_color = #000000 70 +clock_padding = 6 0 clock_background_id = 0 #--------------------------------------------- diff --git a/tintrc04 b/tintrc04 index fd930d4..5c7378b 100644 --- a/tintrc04 +++ b/tintrc04 @@ -5,52 +5,47 @@ #--------------------------------------------- # BACKGROUND AND BORDER #--------------------------------------------- -rounded = 5 +rounded = 3 border_width = 1 -background_color = #ffffff 40 -border_color = #ffffff 70 +background_color = #3c3020 90 +border_color = #3c3020 90 -rounded = 4 -border_width = 0 -background_color = #ffffff 0 -border_color = #d1d1d1 0 - -rounded = 4 -border_width = 0 -background_color = #ffffff 30 -border_color = #d1d1d1 14 +rounded = 3 +border_width = 1 +background_color = #3c3020 90 +border_color = #ffffff 30 #--------------------------------------------- # PANEL #--------------------------------------------- panel_monitor = 1 panel_position = bottom center -panel_size = 1000 25 +panel_size = 900 30 panel_margin = 0 0 -panel_padding = 6 0 +panel_padding = 10 2 font_shadow = 0 -panel_background_id = 1 +panel_background_id = 0 #--------------------------------------------- # TASKBAR #--------------------------------------------- -taskbar_mode = multi_desktop -taskbar_padding = 2 3 +taskbar_mode = single_desktop +taskbar_padding = 9 0 taskbar_background_id = 0 #--------------------------------------------- # TASKS #--------------------------------------------- -task_icon = 1 +task_icon = 0 task_text = 1 -task_width = 150 +task_width = 190 task_centered = 1 -task_padding = 3 2 -task_font = myriad pro 8 -task_font_color = #000000 70 -task_active_font_color = #000000 100 -task_background_id = 2 -task_active_background_id = 3 +task_padding = 2 0 +task_font = sans 8.4 +task_font_color = #ececec 50 +task_active_font_color = #ffffff 90 +task_background_id = 1 +task_active_background_id = 2 #--------------------------------------------- # SYSTRAY @@ -62,12 +57,12 @@ task_active_background_id = 3 # CLOCK #--------------------------------------------- time1_format = %H:%M -time1_font = sans bold 12 -#time2_format = %A %d %B -#time2_font = sans bold 10 -clock_font_color = #000000 70 -clock_padding = 6 0 -clock_background_id = 0 +time1_font = sans bold 8 +time2_format = %A %d %B +time2_font = sans 7 +clock_font_color = #ececec 50 +clock_padding = 4 0 +clock_background_id = 1 #--------------------------------------------- # MOUSE ACTION ON TASK