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

Log of /eclipse/input.lisp

Parent Directory Parent Directory | Revision Log Revision Log


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

Revision 1.55 - (view) (annotate) - [select for diffs]
Fri Apr 2 09:57:53 2010 UTC (4 years ago) by ihatchondo
Branch: MAIN
CVS Tags: HEAD
Changes since 1.54: +3 -2 lines
Diff to previous 1.54
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.54 - (view) (annotate) - [select for diffs]
Tue Nov 17 21:17:29 2009 UTC (4 years, 5 months ago) by ihatchondo
Branch: MAIN
Changes since 1.53: +8 -9 lines
Diff to previous 1.53
Fix: theme rework to remove eql specializer on theme name in favor of theme object.

Revision 1.53 - (view) (annotate) - [select for diffs]
Fri Feb 20 18:03:55 2009 UTC (5 years, 2 months ago) by ihatchondo
Branch: MAIN
Changes since 1.52: +2 -2 lines
Diff to previous 1.52
Fix: invalid use of window type attribute that leads to impropoer workarea computations.

Revision 1.52 - (view) (annotate) - [select for diffs]
Fri Aug 29 14:57:47 2008 UTC (5 years, 7 months ago) by ihatchondo
Branch: MAIN
Changes since 1.51: +4 -2 lines
Diff to previous 1.51
Add: demands attention handling.

Revision 1.51 - (view) (annotate) - [select for diffs]
Mon Apr 28 16:09:16 2008 UTC (5 years, 11 months ago) by ihatchondo
Branch: MAIN
Changes since 1.50: +3 -2 lines
Diff to previous 1.50
Fix: frame extents request handling and frame entents property on undecorate window.

Revision 1.50 - (view) (annotate) - [select for diffs]
Mon Apr 28 12:29:38 2008 UTC (5 years, 11 months ago) by ihatchondo
Branch: MAIN
Changes since 1.49: +2 -2 lines
Diff to previous 1.49
fix: nil event window

Revision 1.49 - (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.48: +4 -3 lines
Diff to previous 1.48
Fix: hacking around *root-window* ...

Revision 1.48 - (view) (annotate) - [select for diffs]
Wed Apr 23 09:54:46 2008 UTC (6 years ago) by ihatchondo
Branch: MAIN
Changes since 1.47: +11 -4 lines
Diff to previous 1.47
Fix: netwm-user-time usage, and some withdrawal glitches.

Revision 1.47 - (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.46: +26 -25 lines
Diff to previous 1.46
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.46 - (view) (annotate) - [select for diffs]
Mon May 7 00:23:05 2007 UTC (6 years, 11 months ago) by ihatchondo
Branch: MAIN
Changes since 1.45: +25 -2 lines
Diff to previous 1.45
Fix: map-request race condition when client remap its top-level before we handled its withdrawal demand.

Revision 1.45 - (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.44: +25 -13 lines
Diff to previous 1.44
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.44 - (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.43: +28 -7 lines
Diff to previous 1.43
_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.43 - (view) (annotate) - [select for diffs]
Sat Feb 12 02:04:37 2005 UTC (9 years, 2 months ago) by ihatchondo
Branch: MAIN
Changes since 1.42: +11 -7 lines
Diff to previous 1.42
Fix bug in with-combo-realizer. Strokes were systematically removed from the hash table.
Minor enhancement in the focus gestion (input.lisp)

Revision 1.42 - (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.41: +12 -3 lines
Diff to previous 1.41
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.41 - (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.40: +6 -7 lines
Diff to previous 1.40
Documentation added.
(defun maximize-window) becomes (defgeneric maximize)

Revision 1.40 - (view) (annotate) - [select for diffs]
Wed Jan 5 23:13:07 2005 UTC (9 years, 3 months ago) by ihatchondo
Branch: MAIN
Changes since 1.39: +14 -11 lines
Diff to previous 1.39
_net_restack_window message handled.
_net_restack_window added to the list of the supported atoms.
get-user-name update.

Revision 1.39 - (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.38: +1 -5 lines
Diff to previous 1.38
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.38 - (view) (annotate) - [select for diffs]
Wed Mar 31 10:02:59 2004 UTC (10 years ago) by ihatchondo
Branch: MAIN
Changes since 1.37: +2 -2 lines
Diff to previous 1.37
fix incorrect kind value when propagating the focus after a destruction.

Revision 1.37 - (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.36: +14 -7 lines
Diff to previous 1.36
some type declaration added.

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

Revision 1.35 - (view) (annotate) - [select for diffs]
Wed Feb 25 10:59:36 2004 UTC (10 years, 1 month ago) by ihatchondo
Branch: MAIN
Changes since 1.34: +9 -4 lines
Diff to previous 1.34
more hacking.

Revision 1.34 - (view) (annotate) - [select for diffs]
Tue Feb 17 16:30:54 2004 UTC (10 years, 2 months ago) by ihatchondo
Branch: MAIN
Changes since 1.33: +3 -9 lines
Diff to previous 1.33
removed focus management from the after method on destroy-notify that is not any more necssary since I removed the with-event-mask statement from the one specialized on decoration.

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

Revision 1.32 - (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.31: +67 -89 lines
Diff to previous 1.31
- 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.31 - (view) (annotate) - [select for diffs]
Tue Jan 20 21:38:11 2004 UTC (10 years, 3 months ago) by ihatchondo
Branch: MAIN
Changes since 1.30: +3 -3 lines
Diff to previous 1.30
fix bogus setf order

Revision 1.30 - (view) (annotate) - [select for diffs]
Tue Jan 20 16:10:00 2004 UTC (10 years, 3 months ago) by ihatchondo
Branch: MAIN
Changes since 1.29: +12 -14 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]
Sat Jan 17 18:22:34 2004 UTC (10 years, 3 months ago) by ihatchondo
Branch: MAIN
Changes since 1.28: +27 -46 lines
Diff to previous 1.28
- misc.lisp:
configure-window [ function ]
   (window &key x y width height stack-mode sibling gravity)

Configure a window. The coordinate system in which the location is expressed
is that of the root (irrespective of any reparenting that may have occurred).
The coordinates will be updated according to the given gravity position hint,
or to the most recently requested by the client.

- input.lisp:
 changed configure-request handling to use configure-window.
 add :_NET_MOVERESIZE_WINDOW client message handling.

Revision 1.28 - (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.27: +83 -70 lines
Diff to previous 1.27
- 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.27 - (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.26: +7 -6 lines
Diff to previous 1.26
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.26 - (view) (annotate) - [select for diffs]
Wed Jan 7 11:21:41 2004 UTC (10 years, 3 months ago) by ihatchondo
Branch: MAIN
Changes since 1.25: +8 -2 lines
Diff to previous 1.25
added a user configuration variable: *maximize-modifier and its
(setf maximize-modifier) funciton. It allow user to choose a modifier key that will alter the maximize button behavior if the coosen modifier down or not when pressing on maximize button. If modifier is down then the value of (not *maximize-fill*) will be used otherwise *maximize-fill* will be used.

modified the corresponding event-process  method in input.lisp

man page updated.

Revision 1.25 - (view) (annotate) - [select for diffs]
Mon Dec 8 15:02:41 2003 UTC (10 years, 4 months ago) by ihatchondo
Branch: MAIN
Changes since 1.24: +12 -10 lines
Diff to previous 1.24
more hacking for handling the :_NET_WM_DESKTOP client message, in order to avoid some focus issues.

Revision 1.24 - (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.23: +9 -9 lines
Diff to previous 1.23
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.23 - (view) (annotate) - [select for diffs]
Mon Nov 24 13:44:50 2003 UTC (10 years, 5 months ago) by ihatchondo
Branch: MAIN
Changes since 1.22: +11 -15 lines
Diff to previous 1.22
more hacking.

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

Revision 1.21 - (view) (annotate) - [select for diffs]
Thu Nov 13 11:12:27 2003 UTC (10 years, 5 months ago) by ihatchondo
Branch: MAIN
Changes since 1.20: +10 -5 lines
Diff to previous 1.20
Fix incorect handling of the states _net_wm_state_{above, below}.

They are permanent as the other states (see inpout.lisp).

It implies that the (setf window-priority) should take those state in account when modifying the stack order (see misc.lisp)

This have as last implication, that we should work with an external list of window for the window circulation keystrokes. Indeed, if one window has the _net_wm_state_above state then it will always be on top of the others. What means, that will stay stuck on this window during circulation. (see minor signature modification of circulate-window in virtual-screen.lisp, and small hack in gestures.lisp)

Revision 1.20 - (view) (annotate) - [select for diffs]
Sun Oct 12 21:59:17 2003 UTC (10 years, 6 months ago) by ihatchondo
Branch: MAIN
Changes since 1.19: +2 -2 lines
Diff to previous 1.19
use (setf xlib:window-priority) instead of (setf window-priority) when changing the stacking order of a box-button.

Revision 1.19 - (view) (annotate) - [select for diffs]
Thu Oct 9 11:38:18 2003 UTC (10 years, 6 months ago) by ihatchondo
Branch: MAIN
Changes since 1.18: +10 -8 lines
Diff to previous 1.18
minor change in undecore-application and the handling of configure-notify.

Revision 1.18 - (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.17: +9 -4 lines
Diff to previous 1.17
- 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.17 - (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.16: +21 -40 lines
Diff to previous 1.16
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.16 - (view) (annotate) - [select for diffs]
Tue Sep 16 21:32:53 2003 UTC (10 years, 7 months ago) by hatchond
Branch: MAIN
Changes since 1.15: +1 -2 lines
Diff to previous 1.15
- lib/clx-ext/clx-extensions.lisp, lib/clx-ext/cursor.lisp:
  Documentation is almost complete.

- lib/clx-ext/keysyms.lisp:
  The init function had been supressed. Instead we create our cache when needed
  and invalidate it when needed (e.g: if modifier-map-changed-p returns t).

  The modifier->modifier-mask now takes a display as first parameter

- eclipse.lisp gestures.lisp: was calling init-keyboard.

- gestures.lisp:
  The modifier->modifier-mask now takes a display as first parameter

Revision 1.15 - (view) (annotate) - [select for diffs]
Tue Sep 16 14:24:41 2003 UTC (10 years, 7 months ago) by hatchond
Branch: MAIN
Changes since 1.14: +23 -23 lines
Diff to previous 1.14
- misc.lisp:
  lots documentation added
  gnome-desktop-num turned in window-desktop-num
- input.lisp, wm.lisp, virtual-screen.lisp, package.lisp, global.lisp
  gnome-desktop-num -> window-desktop-num

Revision 1.14 - (view) (annotate) - [select for diffs]
Fri Sep 12 09:10:02 2003 UTC (10 years, 7 months ago) by hatchond
Branch: MAIN
Changes since 1.13: +2 -4 lines
Diff to previous 1.13
Change-vscreen checks that current-desktop is different than the destination one.

Revision 1.13 - (view) (annotate) - [select for diffs]
Fri Sep 12 01:29:57 2003 UTC (10 years, 7 months ago) by hatchond
Branch: MAIN
Changes since 1.12: +2 -2 lines
Diff to previous 1.12
Handling for client-message of type :_net_close_window was at the wrong place. It should be processed on application.

Revision 1.12 - (view) (annotate) - [select for diffs]
Fri Sep 12 00:25:48 2003 UTC (10 years, 7 months ago) by hatchond
Branch: MAIN
Changes since 1.11: +9 -5 lines
Diff to previous 1.11
- fix incorrect condition in client-message on root when the message type is (or :_WIN_WORKSPACE :_NET_CURRENT_DESKTOP).
- add support for client-message of type :_net_active_window on application.
- fix the :_net_active_window property handling: focusing an undecorated application was not updating this property.

Revision 1.11 - (view) (annotate) - [select for diffs]
Wed Sep 10 23:55:17 2003 UTC (10 years, 7 months ago) by hatchond
Branch: MAIN
Changes since 1.10: +2 -2 lines
Diff to previous 1.10
removed unexisting slots unobscured-p from a with-slots form.

Revision 1.10 - (view) (annotate) - [select for diffs]
Sun Sep 7 01:37:34 2003 UTC (10 years, 7 months ago) by hatchond
Branch: MAIN
Changes since 1.9: +6 -6 lines
Diff to previous 1.9
focus out does nothing if the event-mode is :while-ungrabbed or grab.

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: +118 -119 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: +17 -23 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: +18 -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: +11 -2 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]
Mon Apr 7 13:35:32 2003 UTC (11 years ago) by hatchond
Branch: MAIN
Changes since 1.4: +7 -3 lines
Diff to previous 1.4
ignore upadted and added in lib lib/clx-ext.
misc.lisp: wrong type in geometry structure.
input.lisp: Erik Enge patch for focus widget when click on maximize/menu button

The rest is Christian Lynbech patch for eclipse buildings scripts (configure.in Makefile.in ... new file config.lisp.in)

Thanks to both of you for your patches.

Revision 1.4 - (view) (annotate) - [select for diffs]
Fri Mar 21 09:54:47 2003 UTC (11 years, 1 month ago) by hatchond
Branch: MAIN
Changes since 1.3: +5 -5 lines
Diff to previous 1.3
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.3 - (view) (annotate) - [select for diffs]
Wed Mar 19 09:53:26 2003 UTC (11 years, 1 month ago) by hatchond
Branch: MAIN
Changes since 1.2: +2 -2 lines
Diff to previous 1.2
dismiss-move -> dismiss-move-resize.

Revision 1.2 - (view) (annotate) - [select for diffs]
Sun Mar 16 01:15:49 2003 UTC (11 years, 1 month ago) by hatchond
Branch: MAIN
Changes since 1.1: +65 -31 lines
Diff to previous 1.1
event-process ((event keyboard-pointer-event) (root root)))
  becomes
event-process ((event keyboard-event) (root root)))

  - support for mouse strokes in:
    event-process ((event button-press) (root root)

  - support for mapping-notify:
    event-process ((event mapping-notify) null-widget

fix some focus inconsistency in on-click policy.
support for net-wm-state in event-process for client-message.

Revision 1.1 - (view) (annotate) - [select for diffs]
Thu Nov 7 14:54:27 2002 UTC (11 years, 5 months ago) by hatchond
Branch: MAIN
created an eclipse-internals package.
some bugs fix.
some functionalities added.
file splitting to reorganize the project a little:
 - wm.lisp and global.lisp had been splitted into:
	- widgets.lisp (base-widget, root, application, buttons, ...)
	- input.lisp (general event processing)
	- gestures.lisp (key-combo, cursor movement)
	- eclipse.lisp (Top level functions)
	- move-resize (moving and resizing master)
	- misc.lisp (...)
	- lib/clx-ext/clx-extensions.lisp
 - gnome-manager.lisp had been splitted into:
	- manager-commons.lisp
	- gnome-manager.lisp
	- netwm-manager.lisp
one directory added with one sub-directory: lib and lib/clx-ext
a new package clx-extensions in lib/clx-ext
some files had moved:
	- image-reader.lisp into lib
	- event.lisp ...... into lib/clx-ext
	- cursor.lisp ..... ----------------
	- cursordef.lisp .. ----------------
	- keysysms.lisp ... ----------------
	- keysymdef.lisp .. ----------------

THE DOCUMENTATION IS OUT OF DATE. ( :( )

Iban.

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