Opened 4 years ago

Closed 4 years ago

#229 closed enhancement (invalid)

Type of pointers when dragging objects

Reported by: Samir Hawamdeh Owned by:
Priority: normal Milestone: 4.0-2015R3
Component: Title.mui Version: 4.0-nightly build
Severity: minor Keywords:
Cc: OS Platform: All
Blocked By: Blocking:
Release Notes:

Description

Problem

Actually we have different type of mouse ponters in case we move/drag tabs from a place to another (i presume you are using AISS images for this)

In general these pointers used are:

  • A "stop" pointer that it is used in case you are trying to drag a tab in a forbidden area
  • An "arrow down" pointer that is is used in case you are trying to move a tab in a different position inside an area that contain other tabs (for example this is the case of Odyssey Web Browser program)

Analysis

Problem to consider:

In the title.mui example (NewStuff) you are NOT allowed to drag any tabs outside its demo area, so for example if you move a tab in the Workbench area or whatelse a "stop" pointer will be show, that's correct !

However if you do the same in Odyssey you will get exactly the same type of mouse pointer (the "stop" one) even if dragging things this time is theorically permitted !

In case of dragging attempt in a allowed area (and if a program is able to) I think you should use different mouse pointers
This consider atleast two different case, one if a drag is NOT allowed (and in that case use the "stop" pointer as now) but another one if a drag this time is allowed ! (so picking a different pointer instead)

A bit different is the case of the drag&drop between tabs, in this case we have only a unique possibility so the "arrow down" pointer of course is ok … however how about using another type of "arrow down" pointer ?

In the AISS archive I think we have many other pointers that we can use for this specific case, somethings that can be better compared to the one we are using now ..

Why i don't like the current "arrow down" image for dragging ?

Well mostly because it's the same image we are using for the scroll down gadget of the (MUI) windows, i think we should use somethings better, again an "arrow down" like image but maybe a smaller one

Change History (1)

comment:1 in reply to:  description Changed 4 years ago by Thore Böckelmann

Priority: undecidednormal
Resolution: invalid
Status: newclosed

Replying to samo79:

In general these pointers used are:

  • A "stop" pointer that it is used in case you are trying to drag a tab in a forbidden area
  • An "arrow down" pointer that is is used in case you are trying to move a tab in a different position inside an area that contain other tabs (for example this is the case of Odyssey Web Browser program)

You are confusing mouse pointers with drop marks here. Usually MUI uses a white/black dashed border to indicate that dragged objects may be dropped on a certain other object. Title.mui overrides this internal drop mark by the arrow down image.

In the title.mui example (NewStuff) you are NOT allowed to drag any tabs outside its demo area, so for example if you move a tab in the Workbench area or whatelse a "stop" pointer will be show, that's correct !

However if you do the same in Odyssey you will get exactly the same type of mouse pointer (the "stop" one) even if dragging things this time is theorically permitted !

MUI cannot know whether an application is able to handle drops which do NOT happen on any other MUI object, but outside the window. If an application does support such kinds of drop actions then it should implement the MUIM_DropEvent method. This makes it possible to tell MUI that drops on foreign windows are ok and it is even possible to change the pointer to any supported type. Unfortunately Odyssey does not make use of this method. Ask Fabien Coeurjoly for such a feature. The method is available on MorphOS, too.

In case of dragging attempt in a allowed area (and if a program is able to) I think you should use different mouse pointers
This consider atleast two different case, one if a drag is NOT allowed (and in that case use the "stop" pointer as now) but another one if a drag this time is allowed ! (so picking a different pointer instead)

As I said above already, everything outside MUI's window is a "white spot on the map" for MUI and not handled in any way. If the application supports these "white spots" then it must tell MUI that it does so.

A bit different is the case of the drag&drop between tabs, in this case we have only a unique possibility so the "arrow down" pointer of course is ok … however how about using another type of "arrow down" pointer ?

Again, as said above, this "arrow down" is no mouse pointer but a real image. I implemented it this way, because MUI on MorphOS does it the same way. And other systems use a similar "arrow down" image to indicate the possible drop position for dragged tabs.

Note: See TracTickets for help on using tickets.