/[eclipse]/eclipse/widgets.lisp
ViewVC logotype

Log of /eclipse/widgets.lisp

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Sticky Tag:

Revision 1.61 - (view) (annotate) - [select for diffs]
Fri Apr 23 14:41:12 2010 UTC (3 years, 11 months ago) by ihatchondo
Branch: MAIN
CVS Tags: HEAD
Changes since 1.60: +5 -3 lines
Diff to previous 1.60
Fix: improper handling of iconified application during migration.

Revision 1.60 - (view) (annotate) - [select for diffs]
Fri Apr 2 09:57:53 2010 UTC (4 years ago) by ihatchondo
Branch: MAIN
Changes since 1.59: +3 -3 lines
Diff to previous 1.59
Fix: added some declaration type, and null verification so the clx patch should not be necessary anymore.
Fix: wm-normal-hints returns some inproper values in fields that should be ignored. Now, we replace those obsolote fields values by the window geometry.

Revision 1.59 - (view) (annotate) - [select for diffs]
Tue Nov 17 21:17:29 2009 UTC (4 years, 4 months ago) by ihatchondo
Branch: MAIN
Changes since 1.58: +28 -28 lines
Diff to previous 1.58
Fix: theme rework to remove eql specializer on theme name in favor of theme object.

Revision 1.58 - (view) (annotate) - [select for diffs]
Tue Nov 17 17:33:21 2009 UTC (4 years, 4 months ago) by ihatchondo
Branch: MAIN
Changes since 1.57: +26 -14 lines
Diff to previous 1.57
Fix: use the window hashtable machinery.

Revision 1.57 - (view) (annotate) - [select for diffs]
Fri Feb 20 18:07:01 2009 UTC (5 years, 1 month ago) by ihatchondo
Branch: MAIN
Changes since 1.56: +4 -4 lines
Diff to previous 1.56
Fix: indentation

Revision 1.56 - (view) (annotate) - [select for diffs]
Fri Feb 20 18:05:16 2009 UTC (5 years, 1 month ago) by ihatchondo
Branch: MAIN
Changes since 1.55: +10 -7 lines
Diff to previous 1.55
Fix: transient-for proposerty handling. When a window was changing of leader, it wasn't removed from its previous leader.

Revision 1.55 - (view) (annotate) - [select for diffs]
Fri Apr 25 16:02:49 2008 UTC (5 years, 11 months ago) by ihatchondo
Branch: MAIN
Changes since 1.54: +10 -9 lines
Diff to previous 1.54
Fix: hacking around *root-window* ...

Revision 1.54 - (view) (annotate) - [select for diffs]
Fri Apr 25 08:42:44 2008 UTC (5 years, 11 months ago) by ihatchondo
Branch: MAIN
Changes since 1.53: +30 -26 lines
Diff to previous 1.53
Fix: fullscreen state handling when decorating an application.

Revision 1.53 - (view) (annotate) - [select for diffs]
Thu Apr 24 08:24:45 2008 UTC (5 years, 11 months ago) by ihatchondo
Branch: MAIN
Changes since 1.52: +20 -19 lines
Diff to previous 1.52
Fix:
 - rectangles:
   window->rectangle transformation is now correct.
   rectangle->width/heigth computation is now correct.
   netwm-struts usage was partially incorrect and has been fixed.
   sub-rectangles computation now returns rectangles that does not overlap anymore
- widgets:
   find-max-geometry updated according to changes in the rectangle api.

Revision 1.52 - (view) (annotate) - [select for diffs]
Wed Apr 23 15:16:32 2008 UTC (5 years, 11 months ago) by ihatchondo
Branch: MAIN
Changes since 1.51: +41 -38 lines
Diff to previous 1.51
Fix: improper variable usage in defsetf. So in order to avoid glitches set-.. created, and defsetf calls it.

Revision 1.51 - (view) (annotate) - [select for diffs]
Fri Nov 2 09:33:08 2007 UTC (6 years, 5 months ago) by ihatchondo
Branch: MAIN
Changes since 1.50: +5 -1 lines
Diff to previous 1.50
Fix: bug, desktop window were restacked when one of their modal or transient for were.

Revision 1.50 - (view) (annotate) - [select for diffs]
Fri Nov 2 09:11:42 2007 UTC (6 years, 5 months ago) by ihatchondo
Branch: MAIN
Changes since 1.49: +6 -1 lines
Diff to previous 1.49
Fix: focusing bug in application like citrix meta frame.

Revision 1.49 - (view) (annotate) - [select for diffs]
Fri May 11 12:28:40 2007 UTC (6 years, 11 months ago) by ihatchondo
Branch: MAIN
Changes since 1.48: +3 -3 lines
Diff to previous 1.48
Fix: wm-size-hints might be nil.

Revision 1.48 - (view) (annotate) - [select for diffs]
Mon May 7 13:22:50 2007 UTC (6 years, 11 months ago) by ihatchondo
Branch: MAIN
Changes since 1.47: +7 -2 lines
Diff to previous 1.47
Fix:
- configure-window when configuring panel window should honor size without guessing anything (misc.lisp).
- map-request race condition (input.lisp & widget.lisp)
Added: - application-panel-p predicate (widget.lisp)

Revision 1.47 - (view) (annotate) - [select for diffs]
Fri May 4 08:26:14 2007 UTC (6 years, 11 months ago) by ihatchondo
Branch: MAIN
Changes since 1.46: +8 -8 lines
Diff to previous 1.46
Fix: - _net_wm_state_maximized were improperly handled when an application is newly decorated.
     - recomputation of the application geometry before maximization when the wm-size-hints property is changed.
     - handling of the _net_wm_state_maximized in configure-window (misc.lisp)
     - _net_wm__state property update before put an application in fullscreen to avoid race conditions. (widgets.lisp)

Revision 1.46 - (view) (annotate) - [select for diffs]
Tue Mar 1 22:41:31 2005 UTC (9 years, 1 month ago) by ihatchondo
Branch: MAIN
Changes since 1.45: +6 -1 lines
Diff to previous 1.45
_net_frame_extent and _net_request_frame_extents uspport added.
minor focus manaement enhancements.
*_frame_extents atoms added in the supported list of suported atoms.
docs/complience.txt updated accordingly.

Revision 1.45 - (view) (annotate) - [select for diffs]
Thu Feb 10 23:45:44 2005 UTC (9 years, 2 months ago) by ihatchondo
Branch: MAIN
Changes since 1.44: +3 -2 lines
Diff to previous 1.44
lib/clx-ext/keysyms.lisp: multiple-value-list surrounding xlib:keysym->keycodes was missing.
lib/manager-commons.lisp: id control added in some translator lambda.
eclipse.in: new option --activate-log

eclipse.lisp gestures.lisp input.lisp virtual-screen.lisp widgets.lisp wm.lisp:
- Focus gestion modification to be fully ICCCM complient.
- circulate-window keystroke bug fix. (all modifiers keycodes were not took in account).

Revision 1.44 - (view) (annotate) - [select for diffs]
Sun Jan 16 23:25:59 2005 UTC (9 years, 3 months ago) by ihatchondo
Branch: MAIN
Changes since 1.43: +124 -16 lines
Diff to previous 1.43
Documentation added.
(defun maximize-window) becomes (defgeneric maximize)

Revision 1.43 - (view) (annotate) - [select for diffs]
Mon Dec 20 19:18:20 2004 UTC (9 years, 3 months ago) by ihatchondo
Branch: MAIN
Changes since 1.42: +3 -3 lines
Diff to previous 1.42
fix indentation

Revision 1.42 - (view) (annotate) - [select for diffs]
Tue Nov 30 23:48:10 2004 UTC (9 years, 4 months ago) by ihatchondo
Branch: MAIN
Changes since 1.41: +9 -15 lines
Diff to previous 1.41
Daniel's Barlow feedbacks implemented
eclipse has now a new keyword parmeter: :die-on-init-error that is used in the starting script. If nil then error during init will drop in the debugger allowing you to debug nicely without any "extra" hacking. If T then it will catch ini errors and quit.

Revision 1.41 - (view) (annotate) - [select for diffs]
Fri Jun 18 22:01:53 2004 UTC (9 years, 9 months ago) by ihatchondo
Branch: MAIN
Changes since 1.40: +2 -2 lines
Diff to previous 1.40
widgets.lisp: fix Edi Weitz report on put-on-bottom.
misc.lisp: cosmetic changes in set-window-piority
eclipse.lisp: fix a strange bug that appear sometimes when eclipse restart and has previously grabbed the pointer.

Revision 1.40 - (view) (annotate) - [select for diffs]
Tue Mar 9 19:26:27 2004 UTC (10 years, 1 month ago) by ihatchondo
Branch: MAIN
Changes since 1.39: +11 -9 lines
Diff to previous 1.39
some type declaration added.

Revision 1.39 - (view) (annotate) - [select for diffs]
Mon Mar 8 23:50:19 2004 UTC (10 years, 1 month ago) by ihatchondo
Branch: MAIN
Changes since 1.38: +2 -2 lines
Diff to previous 1.38
fix type declaration in icon-box-update.

Revision 1.38 - (view) (annotate) - [select for diffs]
Mon Mar 8 23:40:34 2004 UTC (10 years, 1 month ago) by ihatchondo
Branch: MAIN
Changes since 1.37: +2 -1 lines
Diff to previous 1.37
type declaration added.

Revision 1.37 - (view) (annotate) - [select for diffs]
Tue Mar 2 19:15:29 2004 UTC (10 years, 1 month ago) by ihatchondo
Branch: MAIN
Changes since 1.36: +3 -3 lines
Diff to previous 1.36
fix some :writer :reader issues instead of :accessor in calss definitions when re defining the reader or the writer.

Revision 1.36 - (view) (annotate) - [select for diffs]
Mon Mar 1 14:53:57 2004 UTC (10 years, 1 month ago) by ihatchondo
Branch: MAIN
Changes since 1.35: +59 -37 lines
Diff to previous 1.35
- system def and packages updated.
- fix theme defualt value for title bar position.
- minor hack for frame edges.

Revision 1.35 - (view) (annotate) - [select for diffs]
Tue Feb 17 12:48:39 2004 UTC (10 years, 2 months ago) by ihatchondo
Branch: MAIN
Changes since 1.34: +3 -11 lines
Diff to previous 1.34
Removed useless property-manager-window from the root object.
Instead standard-property-holder class is defined in widgets.lisp.

Revision 1.34 - (view) (annotate) - [select for diffs]
Thu Feb 12 23:30:22 2004 UTC (10 years, 2 months ago) by ihatchondo
Branch: MAIN
Changes since 1.33: +135 -59 lines
Diff to previous 1.33
- change in the movement handlers that allow undecorated windows (xmms
  for example) to moved through mouse strokes or menu.
  (input.lisp gestures.lisp move-resize.lisp wm.lisp)

- group of windows (such as described in the ICCCM) are now honored:
  transient-for windows are supposed to be stack under their
  dialogs. As another effect, iconifying or sending to another desktop
  one window of a group affect the entire group.

- a new option is now available:
    *save-and-restore-pointer-position-during-workspace-switch*
   that allows to save pointer position before switching from a
   desktop to another and restore previous position when arriving on
   the new one. (misc.lisp virtual-screen.lisp) This has been done via
   a private property on the root window named:
     _ECLIPSE_DESKTOP_POINTER_POSITIONS

- _NET_MOVERESIZE_WINDOW client message is now supported.

- _NET_WM_STATE_STICKY is now supported. (is it correct since Eclipse
  does not implements area's ?)

- an ECLIPSE-EXTENSIONS package is defined in order to export all
  symbols provides by future Eclipse extensions.

- bug fix in:
   - (setf window-priority)
   - dead windows during window cycling (gestures.lisp)
   - window placement (wm.lisp) decoration where incorrectly placed
     when user indicates its preferences (via the wm_normal_hints
     property)
   - minor changes in destroy-notify handling on decoration.

- man page, changelog, compliance updated.

Revision 1.33 - (view) (annotate) - [select for diffs]
Fri Jan 23 15:38:16 2004 UTC (10 years, 2 months ago) by ihatchondo
Branch: MAIN
Changes since 1.32: +18 -7 lines
Diff to previous 1.32
change the initialisation of the initial-geometry and full-geometry slots to have more convenient values in them, when eclipse is restarted or replace another window manager in a running session.

Revision 1.32 - (view) (annotate) - [select for diffs]
Thu Jan 22 22:44:24 2004 UTC (10 years, 2 months ago) by ihatchondo
Branch: MAIN
Changes since 1.31: +4 -6 lines
Diff to previous 1.31
fix bogus remove-widget :after method for application.

Revision 1.31 - (view) (annotate) - [select for diffs]
Thu Jan 22 22:02:54 2004 UTC (10 years, 2 months ago) by ihatchondo
Branch: MAIN
Changes since 1.30: +9 -5 lines
Diff to previous 1.30
fix missing type test in configure-window.
more hacking in (setf fullscreen).

Revision 1.30 - (view) (annotate) - [select for diffs]
Tue Jan 20 16:10:00 2004 UTC (10 years, 2 months ago) by ihatchondo
Branch: MAIN
Changes since 1.29: +17 -16 lines
Diff to previous 1.29
support added for :_net_workarea property (netwm complience) and clean up.

- global.lisp:
  added :_net_workarea :_net_moveresize_window as supported.

- input.lisp:
  :_net_wm_strut_partial :_net_wm_strut are now handled in property notify
  to reflect changes in the net_workarea property.

  + clean up.

- virtual-screen.lisp
  added a call to update-workarea-property in (setf number-of-virtual-screens)

- widgets.lisp
  a slot named type has been added.
  remove-widget :after ((application application)) added.

  + clean up.

- wm.lisp
  added a call to update-workarea-property in decore-application.

Revision 1.29 - (view) (annotate) - [select for diffs]
Thu Jan 15 15:35:34 2004 UTC (10 years, 3 months ago) by ihatchondo
Branch: MAIN
Changes since 1.28: +15 -15 lines
Diff to previous 1.28
- move resize improvements:

  We now use the :pointer-potion-hint in the event-mask. The server is
  now free to send only one :motion-notify event, until either the key
  or button state changes, the pointer leaves the event window, or the
  client calls query-pointer or motion-events.

  This allow us to be served only for event when we can deal with. As
  effect opaque move and resize are smoother.

  side effects:
   decoration time slot removed.  (wm.lisp)
   modify (event-process motion-notify root)

  modified files: input.lisp, wm.lisp

- Christian point out a bug/inconsitency with emacs and multiple
  frame. Changing frames with C-x 5-o was not raising frames. It is
  now fix.

  the fix consist in:
   # add :susbstructure-redirect in the decoration event mask. (wm.lisp)
   # add a (event-process configure-request decoration).
   # add a (event-process map-request decoration).
   # modify (event-process configure-NOTIFY decoration). (input.lisp)
   # modify (setf fullscreen-mode). (widget.lisp)

  modified files: widgets.lisp, wm.lisp, input.lisp

- bug fix and code clean up.

  # error handling in initialize-manager (eclipse.lisp)
  # exit-eclipse condition (wm.lisp)
  # exit part in eclipse-internal-loop (wm.lisp)
  # close-som-connection (widget.lisp)
  # (event-process selection-notify null) (input.lisp)
  # bug fix and typo in gestures.lisp

Revision 1.28 - (view) (annotate) - [select for diffs]
Tue Jan 13 13:52:15 2004 UTC (10 years, 3 months ago) by ihatchondo
Branch: MAIN
Changes since 1.27: +2 -2 lines
Diff to previous 1.27
fix invalid variable name.

Revision 1.27 - (view) (annotate) - [select for diffs]
Tue Jan 13 13:50:37 2004 UTC (10 years, 3 months ago) by ihatchondo
Branch: MAIN
Changes since 1.26: +4 -1 lines
Diff to previous 1.26
added close-widget overloading for icon and decoration.

Revision 1.26 - (view) (annotate) - [select for diffs]
Mon Jan 12 11:22:05 2004 UTC (10 years, 3 months ago) by ihatchondo
Branch: MAIN
Changes since 1.25: +12 -2 lines
Diff to previous 1.25
added the connection to the session-manager using the xsmp protocol.

widgets.lisp
 root-widget now has a new slot named sm-conn.
 close-sm-connection [ function ] root-widget
  close the connection with the session manager.

eclipse.lisp
 Initialize the connection to the session manager.
 The main function eclipse signature changes. It now takes two keyword arguments of type (or null string): display sm-client-id.

 new functions:

 get-username [ function ]
  returns the usename string.

 sm-init [ function ] sm-conn dpy-string
  Sets the xsmp properties that are required by the protocols.

 connect-to-session-manager [ function ] dpy-name &optional previous-id
  Try to connect us to the session manager. If connected set xsmp
  properties and returns the sm-connection instance.

 handle-session-manager-request [ function ] sm-conn root-widget
  Handles xsmp requests. If a DIE request is received then invoke
  close-sm-connection and propagate the exit-eclipse condition.

system.lisp
 added ice and sm system loading and dependance.

load-eclipse.lisp.in
 the start function signature changes to be the same as eclipse (in eclipse.lisp)

*.in & configure
 slight changes to handle the new starting signature and parameters.

docs/eclipse.1
 updated.

Revision 1.25 - (view) (annotate) - [select for diffs]
Mon Jan 12 10:57:58 2004 UTC (10 years, 3 months ago) by ihatchondo
Branch: MAIN
Changes since 1.24: +12 -2 lines
Diff to previous 1.24
fix the problem raised by Christian.
Icons have the following behavior:

 - when you click on an icon it comes on top of anything else.
 - when you release the mouse button after a move (otherwise the
   application get de-iconified) the icon window priority goes back
   at the bottom of the stack (above any desktop application of course)

Revision 1.24 - (view) (annotate) - [select for diffs]
Thu Dec 4 16:12:42 2003 UTC (10 years, 4 months ago) by ihatchondo
Branch: MAIN
Changes since 1.23: +6 -1 lines
Diff to previous 1.23
focus-widget overloaded for class root. (widgets.lisp)
give-focus-to-next-widget-in-desktop now use it. (virtual-screen.lisp)

Revision 1.23 - (view) (annotate) - [select for diffs]
Thu Dec 4 14:28:36 2003 UTC (10 years, 4 months ago) by ihatchondo
Branch: MAIN
Changes since 1.22: +4 -1 lines
Diff to previous 1.22
defgeneric for focused-p added.

Revision 1.22 - (view) (annotate) - [select for diffs]
Wed Dec 3 14:34:34 2003 UTC (10 years, 4 months ago) by ihatchondo
Branch: MAIN
Changes since 1.21: +5 -9 lines
Diff to previous 1.21
removed the cursor cache from widgets.lisp.
removed the cache init from eclipse.lisp

Revision 1.21 - (view) (annotate) - [select for diffs]
Fri Nov 28 10:13:47 2003 UTC (10 years, 4 months ago) by ihatchondo
Branch: MAIN
Changes since 1.20: +22 -13 lines
Diff to previous 1.20
add support for icon as described in the exwm spec.
 - decode-netwm-icon-pixmap (misc.lisp)
 - small impacts in gestures.lisp & widgets.lisp.

add a new callback on the application list root menu:
 when no window on a desktop then releasing the mouse button on such an entry
 will put you on that desktop. (wm.lisp)

package.lisp updated.

Revision 1.20 - (view) (annotate) - [select for diffs]
Mon Nov 24 13:12:02 2003 UTC (10 years, 4 months ago) by ihatchondo
Branch: MAIN
Changes since 1.19: +3 -1 lines
Diff to previous 1.19
We now (un)map the application window and the master window (if it exists) when mapping/unmapping a desktop.

Revision 1.19 - (view) (annotate) - [select for diffs]
Sat Nov 8 19:54:13 2003 UTC (10 years, 5 months ago) by ihatchondo
Branch: MAIN
Changes since 1.18: +6 -5 lines
Diff to previous 1.18
fix misplaced ignore-errors declarations.

Revision 1.18 - (view) (annotate) - [select for diffs]
Sat Nov 1 09:41:49 2003 UTC (10 years, 5 months ago) by ihatchondo
Branch: MAIN
Changes since 1.17: +3 -2 lines
Diff to previous 1.17
fix focus loss problem when switching into fullscreen.

Revision 1.17 - (view) (annotate) - [select for diffs]
Thu Oct 9 11:37:08 2003 UTC (10 years, 6 months ago) by ihatchondo
Branch: MAIN
Changes since 1.16: +13 -22 lines
Diff to previous 1.16
- minor focus change:
  For application with a :no-input as focus model, we now gives the
  same event mask as the others. The problem was that an application
  with a globaly-active model can decide to sets the focus to one of
  its satellite window that have a no-input model. This is correct
  because the input model is indicate to the window manager how to
  give the focus to the application. But in any case, it indicates
  that the application will never have or not the focus.

- minor change in (setf fullscreen-mode): we now use the
  no-decoration-theme instead of undecorting.

Revision 1.16 - (view) (annotate) - [select for diffs]
Mon Oct 6 17:57:26 2003 UTC (10 years, 6 months ago) by ihatchondo
Branch: MAIN
Changes since 1.15: +64 -45 lines
Diff to previous 1.15
- Window rotation (Alt-Tab) re-designed. It now works as in almost
  every window managers. Press Alt-Tab once will raise the next
  application, on the current desktop, according to the current
  stacking order. If Alt is released then pressing again Alt-Tab will
  put back the precedent application. Otherwise if you kipped Alt down
  then Tab again and the next application will be brought on top of the
  others, and the precedent one is back on its depth. And so on
  until you come back on the first one.
  The same mechanism is available with say Alt-a. It just rotate
  windows on the other sens.

- The window rotation may be verbose by displaying a small window
  indicating the name and the icon, if provided, of the application
  that comes on top of the others.
  To disable it do (setf *verbose-window-cycling* nil) in your eclipse
  config file.

- The window rotation may also cycle the current desktop iconified
  applications. To disable it do (setf *cycle-icons-p* nil) in
  your eclipse config file.

- Screen edges are now resistant.

- fix menu bug. They don't anymore appear below their applications.

- a maximized window does not allow anymore to be resized in the
  directions in which it has been maximized.

- the message-box may now display a centered pixmap before the text.

- package.lisp updated.

- man page updated.

- changelog updated.

Revision 1.15 - (view) (annotate) - [select for diffs]
Tue Sep 30 12:18:36 2003 UTC (10 years, 6 months ago) by hatchond
Branch: MAIN
Changes since 1.14: +27 -10 lines
Diff to previous 1.14
Documentation added on almost all functions and methods.
Minor modification in the move/resize process to make it a bit more stand alone.
A "build-in" theme named no-decoration has been added. To use it do as usual:
 (setf (decoration-theme) "no-decoration")
 This isn't already in the man page but I will as soon as I can.

Revision 1.14 - (view) (annotate) - [select for diffs]
Mon Sep 15 10:16:50 2003 UTC (10 years, 7 months ago) by hatchond
Branch: MAIN
Changes since 1.13: +2 -2 lines
Diff to previous 1.13
dismiss-move-resize undraw the geometry info box when *verbose-resize* is true.

Revision 1.13 - (view) (annotate) - [select for diffs]
Fri Sep 12 16:03:15 2003 UTC (10 years, 7 months ago) by hatchond
Branch: MAIN
Changes since 1.12: +3 -3 lines
Diff to previous 1.12
*** empty log message ***

Revision 1.12 - (view) (annotate) - [select for diffs]
Fri Sep 12 01:17:53 2003 UTC (10 years, 7 months ago) by hatchond
Branch: MAIN
Changes since 1.11: +8 -2 lines
Diff to previous 1.11
more net-wm complience: a window that goes to the withdrawn state delete its +properties-to-delete-on-withdrawn+.

Revision 1.11 - (view) (annotate) - [select for diffs]
Tue Sep 9 13:51:56 2003 UTC (10 years, 7 months ago) by hatchond
Branch: MAIN
Changes since 1.10: +4 -3 lines
Diff to previous 1.10
- fix a bug in iconifiy when we iconfiy an undecorated application.
- fix (setf button-active-p) :after that have to be sure the master slots of the button is a decoration and not root.

Revision 1.10 - (view) (annotate) - [select for diffs]
Mon Sep 8 13:05:32 2003 UTC (10 years, 7 months ago) by hatchond
Branch: MAIN
Changes since 1.9: +56 -9 lines
Diff to previous 1.9
In order to support clicked pixmap on push buttons, the repaint method is implemented for the push-button class. It choose the correct pixmap to display depending of the current state of the button.
Finally, a :after method is also implemented for the (setf button-active-p) method to immediatly update the button image.

Revision 1.9 - (view) (annotate) - [select for diffs]
Thu Aug 28 14:50:35 2003 UTC (10 years, 7 months ago) by hatchond
Branch: MAIN
Changes since 1.8: +136 -171 lines
Diff to previous 1.8
shade is now implemented (wm.lisp).
  To {un}shade a window double click on title bar.

  shaded-p widget: [generic function]
  return the actual shade state in the sens of the extended wm
  specification.

  timestamp: slot of the title-bar class. (NEW)
  :_net_wm_state_shaded added in +netwm-protocol+

- *double-click-speed*: [global variable]
  use it to customize the time you want for double click.
  Default value: 200 (timestamp unit of the X server)

- added support for the xvidmode extension
  (lib/clx-ext/xvidmode.lisp).

- added support for :net_wm_state_{below, above} in input.lisp

- the following methods have created for manipulating widgets stacking
  order.

  - put-on-top widget [generic function]
    sets the widget stacking order on top of the others.

  - put-on-bottom widget [generic function]
    sets the widget stacking order on bottom of the others (except if
    any widget with :_net_wm_type_desktop is present and widget is or
    an application or a decoration).

- various  bug fix and improvements:

  - typo fix *wRAp-pointer-when-cycle* => *wARp-pointer-when-cycle*

  - set-focus now cares of the map state of the window it is supose to
    gives the focus to. (Should avoid lots of match-error).
    Wrong nil timestamp has been fixed.
    (wm.lisp)

  - minor change in the unmap-notify event handling. Closing an
    application should not any more systematically provoke a
    window-error error. (input.lisp)

  - fullscreen-mode should now be correct: the spec say it would be
    better to undecore the window when in fullscreen. It is now how it
    works. (widgets.lisp)

    (One more feature of this function is still under discussion in
    the freedesktop team that may introduce modifications in the
    future)

    typo fix full-screen-mode => fullscreen-mode

  - maximize-window signature changes (wm.lisp):
    It now expect an application instead of a decoration.
    This have been done because non decorated window should be
    able to be maximized as well as decorated one. It is now the
    case. It has serval side effects:
     - slot initial-geometry in class decoration doesn't exist
       anymore.
     - new private slot added in class application: max-geometry.
     - STROKES USING MAXIMIZE-WINDOW SHOULD BE UPDATED.

  - minor changes in update-edges-geometry, and move-resize.lisp.

  - clean up in eclipse.lisp (delete unused code).

  - virtual-screen.lisp re-implementation. It now use the X server
    data such the root window tree, and window property that hold the
    desktop number instead of a substructure hold by the root object
    that has to be updated each time you destroy, iconify, unicofy,
    shade, unshade, etc.

Revision 1.8 - (view) (annotate) - [select for diffs]
Wed Jun 11 18:29:23 2003 UTC (10 years, 10 months ago) by hatchond
Branch: MAIN
Changes since 1.7: +29 -11 lines
Diff to previous 1.7
- package.lisp: now export almost every symbols. They are sorted in
  alphabetical order and type order (class, generic function,
  function, ...)

- input.lisp: minor modification in event-process for client-message on
  application. An application that does not support to be maximized in
  fullscreen don't have the _net_wm_state_fullscreen property sets
  anymore.

- lib/clx-patch.lisp: fixed bug found in input-focus.

- wm.lisp:
   focused-p modified.
   dispatch-repaint: new method for the repaint protocol.
   draw-focused-decoration & draw-unfocused-decoration: removed.

- widget.lisp:
   focused-p modified.
   repaint implementations for icon, button and box-button.

- themer.lisp: themes are now defined in their own packages.

- themes/*/theme.lisp: All default themes converted in this new
  system.

The rest concern what we discuss on precedent post about a repaint
protocol.

The two generic functions draw-on-focus-{in,out} had been supressed in
favor of a single one named repaint.

 repaint widget name focus [generic function]
  This method is dedicated to widget repaint such as every buttons,
  icons, edges ...
  It is specialized on widget type, theme name (via an eql
  specializer) and a boolean that indicate if the corresponding
  toplevel (type decoration) is or not focused.

  Except for standard expose events, the repaint dispatching on focus
  change will be perform according to parts-to-redraw-on-focus list
  given in define-theme.

  The core of eclipse provide some basic implementation for the
  repaint method:

  (defmethod repaint ((widget base-widget) theme-name (focused-p t))
    (values))

  (defmethod repaint ((widget button) theme-name (focused-p t))
    ;; draw a pixmap if the button provide a pixmap to display when
    ;; toplevel is focused.
    ;; in case of title bar draw a centered text corresponding to the app
    ;; name.
    )

  (defmethod repaint ((widget button) theme-name (focused-p null))
    ;; clear the button.
    )

  (defmethod repaint ((widget box-button) theme-name focused-p)
    ;; draw the message that is displayed by this box.
    )

  (defmethod repaint ((widget icon) theme-name focused-p)
    ;; draw the icon name if aplication does not provide a pixmap for it.
    )

  This method is expected to be overloaded by theme implementors as
  well as to be exported by theme package definition.

  Theme implementation notes:
  --------------------------

   - themes are supposed to be defined in their own packages.
   - theme package definition should be suplied.
   - the naming convention for themes packages is:
     <theme-name>-ECLIPSE-THEME.

   Typically a theme package will export at least two symbols:
    - INITIALIZE-FRAME
    - REPAINT

   Here comes an example of how defining a theme (see our predefined
   themes for more):

   ;;; -*- Mode: Lisp; Package: FOO-ECLIPSE-THEME -*-
   ;;; GPL Disclaimer for example.
   ;;; file theme.lisp

   (common-lisp:in-package :common-lisp-user)

   (defpackage "FOO-ECLIPSE-THEME"
     (:use eclipse clx-ext common-lisp)
     (:size 10)
     (:export repaint initialize-frame)
     (:documentation
      "Foo theme decoration for the eclipse window manager. Written by ...")
     )

   (in-package "FOO-ECLIPSE-THEME")

   (define-theme "Foo"
       ;; the rest of the definition
       )

   (defmethod repaint ((widget title-bar) (name (eql "Foo")) (focus t))
     "handle repaint WHEN focused."
     ;; do some stuff
     )

   (defmethod repaint ((widget title-bar) (name (eql "Foo")) (focus null))
     "handle repaint WHEN NOT focused."
     ;; do some stuff
     )

   (defun bar ()
     ;; do what you want
     )

   ;;; end of theme.lisp

Revision 1.7 - (view) (annotate) - [select for diffs]
Wed May 14 08:56:17 2003 UTC (10 years, 11 months ago) by hatchond
Branch: MAIN
Changes since 1.6: +26 -3 lines
Diff to previous 1.6
ICCCM complience and extended window manager specification complience.
 - bugs fix relative to ewt wm spec (i.e.: we now should interact correctly with gnome 2.2)
 - added ICCCM session managment complience: we now use/react to the owning of the WM_S{screen number} selection. see ICCCM 2.8

we still need gnome session managment conection.

Revision 1.6 - (view) (annotate) - [select for diffs]
Tue May 13 14:54:01 2003 UTC (10 years, 11 months ago) by hatchond
Branch: MAIN
Changes since 1.5: +75 -6 lines
Diff to previous 1.5
applied Christian Lynbech patch for icon managment:
"Here is a diff that adds what I think is improved icon handling. It
provides an icon box, ie. a configurable place where icons are
stacked. As part of this change, I have changed the default location
of icons from (750,50) to (0,0). If the icon box overflows, icons will
be created ayt (0,0). I have also decreased the default height from 60
to 20 to minimize the space waste (if the application supplies an
icon, it will of course take precedence).

The patch allso adds different kinds of sorting options. Icons can be
sorted by creation time (I have added a new slot in the `icon' class)
or name or class (or whatever else you can think of).

Unrelated to the icon box thing, the patch also contains a set of
application inspection function (see the end of "misc.lisp"), A
disabling of the expression that removes the "Exit" entry in the root
menu so that you can close Eclipse down and finally a new option,
*close-display-p*, that regulates whether exiting Eclipse also kills
the entire X session (if *close-display-p* is nil, Eclipse will just
exit).

It still needs a few things, such as the possibility of disabling the
icon box and other fill orders than :top-right (ie. filling from the
top right corner of the box).

Let me know what you think."

plus small corrections from me (for fullscreen-mode, but it still cause problems).

Revision 1.5 - (view) (annotate) - [select for diffs]
Fri Mar 21 09:54:47 2003 UTC (11 years ago) by hatchond
Branch: MAIN
Changes since 1.4: +36 -13 lines
Diff to previous 1.4
added one missing specialized method focus-widget on push-button.
The rest is more or less some netwm complience improvement (fullscreen, hidden, icon-name, maximized).
 - initial-geometry decoration slot type changed: it is now a struct defined in misc.lisp.
 - the same slot has been add in application for fullscreen purpose.
 - fix bogus undecore-application.

Revision 1.4 - (view) (annotate) - [select for diffs]
Wed Mar 19 09:52:38 2003 UTC (11 years, 1 month ago) by hatchond
Branch: MAIN
Changes since 1.3: +7 -4 lines
Diff to previous 1.3
Turn dismiss-move into dismiss-move-resize to fix window destruction during resize and move. Also fixed window-geometry-info-box that didn't disapear if window if destroyed dusring the process.

Revision 1.3 - (view) (annotate) - [select for diffs]
Sun Mar 16 00:57:02 2003 UTC (11 years, 1 month ago) by hatchond
Branch: MAIN
Changes since 1.2: +64 -36 lines
Diff to previous 1.2
fix some desktop-number inconsistency when it was equal to +any-desktop+
fix some focus inconsistency under on-click policy.

- *focus-new-map-window* is a new option:
    to do that a new application slot had been add: wants-focus-p
    who is sets to *focus-new-map-window* at map-request time, and at iconify
    time. (Maybe we don't want it at iconify time, just tell me)
    Then when we process a visibility-notify event we just give it or
    not the focus according the wants-focus-p value.
- *focus-when-window-cycle* is a new option.
- *wrap-pointer-when-cycle* is a new option:
    move or not pointer during window cycling.

  - lookup-widget (window) [function]
    returns the widget cache for the window or null
    (It is done to avoid proliferation of (gethash window *widget-table*))
    had been declared inline.

Revision 1.2 - (view) (annotate) - [select for diffs]
Wed Dec 18 10:50:49 2002 UTC (11 years, 4 months ago) by hatchond
Branch: MAIN
Changes since 1.1: +3 -2 lines
Diff to previous 1.1
fix wrong syntax with &rest parameter

Revision 1.1 - (view) (annotate) - [select for diffs]
Thu Nov 7 15:06:03 2002 UTC (11 years, 5 months ago) by hatchond
Branch: MAIN
to files missing.

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

  ViewVC Help
Powered by ViewVC 1.1.5