1. 13 Mar, 2005 1 commit
  2. 01 Mar, 2005 1 commit
  3. 10 Feb, 2005 1 commit
  4. 18 Jan, 2005 1 commit
  5. 16 Jan, 2005 1 commit
  6. 16 Dec, 2004 1 commit
  7. 19 Mar, 2004 1 commit
  8. 15 Mar, 2004 1 commit
  9. 10 Mar, 2004 1 commit
  10. 09 Mar, 2004 1 commit
  11. 02 Mar, 2004 1 commit
  12. 01 Mar, 2004 1 commit
  13. 23 Feb, 2004 1 commit
  14. 17 Feb, 2004 1 commit
  15. 16 Feb, 2004 1 commit
  16. 13 Feb, 2004 1 commit
  17. 12 Feb, 2004 1 commit
    • Iban Hatchondo's avatar
      - change in the movement handlers that allow undecorated windows (xmms · 188e9ddb
      Iban Hatchondo authored
        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.
      188e9ddb
  18. 23 Jan, 2004 1 commit
  19. 21 Jan, 2004 1 commit
    • Iban Hatchondo's avatar
      a very little change in the define-theme syntax. Style parts are now defined in · c5d80791
      Iban Hatchondo authored
      a list (such as the class slots for example). This allow to have the
      :title-bar-position :parts-to-redraw-on-focus potions to be effectively
      optional. Plus a :background option has been added. This will be
      useful to the one who wants to define a no-decoration style like but
      with colored border.
      
      See the documentation.
      
      make-decoration use the theme style-background. (wm.lisp)
      
      - themes has been updated
      - doc updated.
      c5d80791
  20. 20 Jan, 2004 1 commit
    • Iban Hatchondo's avatar
      support added for :_net_workarea property (netwm complience) and clean up. · 7ea81e7d
      Iban Hatchondo authored
      - 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.
      7ea81e7d
  21. 15 Jan, 2004 1 commit
    • Iban Hatchondo's avatar
      - move resize improvements: · c3de58d7
      Iban Hatchondo authored
        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
      c3de58d7
  22. 13 Jan, 2004 1 commit
  23. 12 Jan, 2004 1 commit
    • Iban Hatchondo's avatar
      added the connection to the session-manager using the xsmp protocol. · ced908e6
      Iban Hatchondo authored
      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.
      ced908e6
  24. 06 Jan, 2004 1 commit
    • Iban Hatchondo's avatar
      clean up. · 0873511b
      Iban Hatchondo authored
      turned in eclipse-internal-loop the handler-bind for a handler-case.
      some error handlers had been modified.
      0873511b
  25. 02 Dec, 2003 2 commits
  26. 28 Nov, 2003 1 commit
    • Iban Hatchondo's avatar
      add support for icon as described in the exwm spec. · 277c7476
      Iban Hatchondo authored
       - 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.
      277c7476
  27. 24 Nov, 2003 1 commit
    • Iban Hatchondo's avatar
      Maximize fill implemented: · 4b4de85e
      Iban Hatchondo authored
       - new file rectangles.lisp.
       - maximize-window modified to use the maximize-fill operaion.
       - new user configuration option: *maximize-fill*
      
      We now support the netwm-strut{-partial}, and don't overlap panels that should not be overlapped (gnome panels for exemple)
      
      package.lisp, system.lisp updated.
      4b4de85e
  28. 19 Nov, 2003 1 commit
    • Iban Hatchondo's avatar
      More hacking. · bcdae264
      Iban Hatchondo authored
      change get-screen-content for screen-content. Some keyword parameter added.
      bcdae264
  29. 09 Oct, 2003 1 commit
    • Iban Hatchondo's avatar
      - minor focus change: · 55a7ffad
      Iban Hatchondo authored
        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.
      55a7ffad
  30. 06 Oct, 2003 1 commit
    • Iban Hatchondo's avatar
      - Window rotation (Alt-Tab) re-designed. It now works as in almost · 5abdb7f3
      Iban Hatchondo authored
        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.
      5abdb7f3
  31. 01 Oct, 2003 1 commit
  32. 30 Sep, 2003 1 commit
    • hatchond's avatar
      Documentation added on almost all functions and methods. · e71096ac
      hatchond authored
      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.
      e71096ac
  33. 16 Sep, 2003 1 commit
    • hatchond's avatar
      - misc.lisp: · a5552880
      hatchond authored
        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
      a5552880
  34. 12 Sep, 2003 1 commit
  35. 08 Sep, 2003 1 commit
  36. 29 Aug, 2003 1 commit
  37. 28 Aug, 2003 1 commit
    • hatchond's avatar
      shade is now implemented (wm.lisp). · b20c403d
      hatchond authored
        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.
      b20c403d
  38. 11 Jun, 2003 1 commit
    • hatchond's avatar
      - package.lisp: now export almost every symbols. They are sorted in · 64c49c91
      hatchond authored
        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
      64c49c91
  39. 14 May, 2003 1 commit
    • hatchond's avatar
      ICCCM complience and extended window manager specification complience. · eaabc4cf
      hatchond authored
       - 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.
      eaabc4cf