Commit Graph

564 Commits

Author SHA1 Message Date
Martin Poirier
5a0436b8ea Double Click plays nicer with Click.
1) Double Click takes priority over a second Click (Click will still be send if not handled)
2) The first Click being handled doesn't stop the following Double Click
2009-12-10 23:24:29 +00:00
Martin Poirier
ab7e9da342 wm_menu_invoke calls exec automatically if property is already set.
This way you can set the param in the keymap and it won't always show the menu for nothing.
2009-12-10 23:22:43 +00:00
Martin Poirier
0779f2c425 Double Click event value.
Timeout between both clicks is user configurable, should be taken from the OS when possible.
2009-12-10 17:41:03 +00:00
Campbell Barton
959ac68914 align option for split 2009-12-10 14:47:07 +00:00
Brecht Van Lommel
11ca70b42d Update Handling: moved wm_data_handle_update from windowmanager to
scene_update_tagged in blenkernel, code fits better there.
2009-12-10 11:08:38 +00:00
Brecht Van Lommel
3712e78d52 RNA: fix for yesterday's commit, browsing screens and scenes was
not working anymore, relies on special notifiers.
2009-12-09 10:55:28 +00:00
Martin Poirier
bc79569419 grabcursor attribute stores full grab mode so we can better differentiate when it needs to wrap around cursor draw.
Also add cocoa exception to wm_get_cursor_position (this should be fixed at the ghost level)
2009-12-09 04:51:35 +00:00
Brecht Van Lommel
7e333010f3 Animation System: Handling Updates
* Added ANIM_list_elem_update and ANIM_id_update functions to call when
  changing animation curves, which will then call the RNA property update
  functions for those curves.

  This is to replace just calling DAG_id_flush_update, that may not always
  be the right thing to do, and doesn't send proper notifiers for redraw.

  Still only used/usable when transforming in the graph editor, not sure
  how this do this with NLA for example, .. needs to be improved.

* Added function wm_data_handle_update function to contain the object
  update function, and also added scene animation update there. Actually
  it should be doing all datablocks, this makes it work for sequencer.


Joshua, do you agree this is the right direction to go in? I can revert or
change the code if you think it should be done differently. Mainly wanted
to get this working well for sequencer now.
2009-12-08 18:28:09 +00:00
Martin Poirier
1b3a295e4f RNA functions to find keymaps in a keyconfig (from the usual idname + space or modal keymaps from operator id) 2009-12-08 18:02:50 +00:00
Brecht Van Lommel
07904712e8 RNA:
* Property update functions no longer get context, instead they get only
  Main and Scene. The RNA api was intended to be as context-less as
  possible, since it doesn't really matter who is changing the property,
  everything that uses the property should be updated.
* There's still one exception case that use it now, screen operations
  still depend on context too much. It also revealed a few places using
  context where they shouldn't.
* Ideally Scene shouldn't be passed, but much of Blender still depends on
  it, should be dropped when we try to support multiple scene editing.

Change was planned for a while, but need this now to be able to call
update without a context pointer.
2009-12-08 17:23:48 +00:00
Brecht Van Lommel
f2452c1fd6 Sequencer:
* Sound strips now respect metastrips for muting. That means they
  are muted if the metastrip is muted, and don't play when located
  outside of the current metastrip.
* Operators now use notifiers instead of redraw tagging, added a
  separate notifier for selection as well, but that is not used to
  do less redraws yet.
2009-12-08 13:57:51 +00:00
Brecht Van Lommel
0151be0210 UI: fix trailing tooltips when deactivating window, and when opening
right click menu. Added window deactivate event for this.
2009-12-08 13:02:03 +00:00
Matt Ebb
81a69bb00f Various changes to screen-related code, aiming to fix a few problems and usability issues with 'temp' screen layouts.
Now, temp screens are hidden from being accessed directly, with a new 'Back to Previous' button appearing in place of the screen menu when (for example) fullscreen render image areas are present. Window type menus also get disabled here too, to prevent things from getting too mixed up.
2009-12-08 07:12:06 +00:00
Martin Poirier
19aab8edb0 Custom cursor draw function uses the real cursor position when cursor is grabbed (and not the coordinates from the event). Drawing a custom cursor anywhere but on the real cursor is no good.
Also permit NULL poll function (equal to a function that always returns 1)
2009-12-07 18:08:19 +00:00
Martin Poirier
78f87c8bdf Function to access the real cursor position from Ghost (useful when cursor is grabbed and warped) 2009-12-07 18:06:37 +00:00
Martin Poirier
149b3bc7f2 Flag down a window when cursor is grabbed. 2009-12-07 18:05:51 +00:00
Brecht Van Lommel
161871316e Bugfix: WM could access freed memory when testing for click event after
opening a new file (and freeing the window and its event queue).
2009-12-07 16:59:10 +00:00
Matt Ebb
91102d96fc Fix for [#20057] Shift F for setting brush strenght can never get to 1 2009-12-07 03:37:43 +00:00
Campbell Barton
f08e8af0b9 wm.invoke_popup(op, width, height) similar to wm.invoke_props_popup(op, event) except it doesnt use undo/redo (UI's need to execute operators themselves) 2009-12-06 04:35:00 +00:00
Martin Poirier
bcd1ab54cd Support for the C Macro system in Python.
Basic definition works like a python operator but you derive from "bpy.types.Macro" instead.
Operators are added to the macro after it has been added with "bpy.ops.add_macro" through the class method "define" which takes an operator id and returns an OperatorMacroType (new RNA type) for which properties can then be defined to be passed to the operator when run.

Example: http://blenderartists.org/~theeth/bf/macro.py

Using this system, it should be easy to add an operator to the console that converts selected lines into a macro or even a more generic record macro system.
2009-12-05 19:27:26 +00:00
Martin Poirier
f287762678 Macros in macro didn't work correctly. 2009-12-05 19:05:21 +00:00
Martin Poirier
e9b7482b6a Save_Mainfile operator only needs window for invoke. Removed poll function and replace by a check in invoke that cancels if no window is present.
Makes it possible to be called in background mode.
2009-12-04 19:07:25 +00:00
Joshua Leung
d1563601f4 This commit deletes temporary "temp" screen layouts when the windows using them get closed. 2009-12-04 09:58:00 +00:00
Matt Ebb
a358b6386d * Fix for incorrect disabling after baking cloth sim
* Fix for time cursor getting 'stuck' after baking point caches
2009-12-04 04:28:50 +00:00
Martin Poirier
c758f6589e Reset operator properties for keymap items when operator idname is changed.
This means added operators in the keymap editor will now show options correctly (maybe not for old .B25.blend)
2009-12-02 04:12:16 +00:00
Nathan Letwory
5a3791ab5b Apply patch [#20145] Ghost Win32 roundup patch: Minimum Window Size, Continuous Grab and Drag And Drop
This nice patch by Matt D. (matd in #blendercoders) adds three nice features that can be seen already in the other supported OSes:

* minimum window size: to prevent some bugs with the window manager of Blender, system windows cannot be resized smaller than the minimum size.

* Continuous Grab is finally in Windows! Default settings since alpha 0 already have the feature enabled by default, so grab a new build and enjoy :)

* GHOST support for drag and drop added. This prepares Blender for drag and drop from OS -> Blender. Currently not very useful, since wm needs to be readied for that. But it does work (do BF_GHOST_DEBUG=1 build and drag a file onto a Blender window).

Thanks Matt D.!
2009-12-02 00:57:12 +00:00
Campbell Barton
9bf3845539 circle select modal operator wasnt returning FINISHED so it wasnt getting an undo push 2009-12-01 19:43:09 +00:00
Campbell Barton
b911d83091 better not process events early, could cause troubles later.
added a function - wm_window_get_size_ghost(), which looks into the ghost window directly so events dont need processing first.
2009-11-30 14:10:46 +00:00
Campbell Barton
ab4a141560 bugfix [#20083] Wrong position of splash screen on dualhead 2009-11-30 13:58:27 +00:00
Martin Poirier
cd154da973 1. Extend option for 3d view border select now does something (default True to keep same behavior)
2. Add action parameter to Select_All_Toggle operators, rename to Select_All.
Options are Toggle (default), Select, Deselect, Invert (same as select swap). This makes it possible to map separate hotkeys for select all and deselect all.

NOTE for Aligorith: I didn't change animation operators for select_all which already had an Invert operator. These should be fixed eventually.
2009-11-29 22:16:29 +00:00
Martin Poirier
ae16f46573 Fix CLICK event for modal operators.
modal operators should return RUNNING_MODAL|PASSTHROUGH for unhandled events to be able to receive clicks correctly (this needs to be fixed for other modal operators).

Maybe it's time to have "handled" flag in event instead.
2009-11-29 16:49:26 +00:00
Campbell Barton
36cbf42e5d Draw function for operators (just like panels), used for the redo popup, file selector and redo tool panel.
Used for ply export & select pattern.
2009-11-29 01:49:22 +00:00
Campbell Barton
cd574f32e6 experemental UI introspection added for mindrones,
in python this gives a map of the ui...
 ui_dict = eval(layout.introspect())
2009-11-28 17:45:23 +00:00
Campbell Barton
510c0facdf operator renaming for more consistent word ordering (_add/_remmove shold be last, ACT_OT_* --> ACTION_OT_*)
ACT_OT_clean --> ACTION_OT_clean
ACT_OT_clickselect --> ACTION_OT_clickselect
ACT_OT_copy --> ACTION_OT_copy
ACT_OT_delete --> ACTION_OT_delete
ACT_OT_duplicate --> ACTION_OT_duplicate
ACT_OT_extrapolation_type --> ACTION_OT_extrapolation_type
ACT_OT_frame_jump --> ACTION_OT_frame_jump
ACT_OT_handle_type --> ACTION_OT_handle_type
ACT_OT_insert_keyframe --> ACTION_OT_insert_keyframe
ACT_OT_insert_keyframe --> ACT_OT_keyframe_insert
ACT_OT_interpolation_type --> ACTION_OT_interpolation_type
ACT_OT_keyframe_type --> ACTION_OT_keyframe_type
ACT_OT_mirror --> ACTION_OT_mirror
ACT_OT_new --> ACTION_OT_new
ACT_OT_paste --> ACTION_OT_paste
ACT_OT_previewrange_set --> ACTION_OT_previewrange_set
ACT_OT_properties --> ACTION_OT_properties
ACT_OT_sample --> ACTION_OT_sample
ACT_OT_select_all_toggle --> ACTION_OT_select_all_toggle
ACT_OT_select_border --> ACTION_OT_select_border
ACT_OT_select_column --> ACTION_OT_select_column
ACT_OT_snap --> ACTION_OT_snap
ACT_OT_test --> ACTION_OT_test
ACT_OT_unlink --> ACTION_OT_unlink
ACT_OT_view_all --> ACTION_OT_view_all
ANIM_OT_add_driver_button --> ANIM_OT_driver_button_add
ANIM_OT_add_keyingset_button --> ANIM_OT_keyingset_button_add
ANIM_OT_delete_keyframe --> ANIM_OT_keyframe_delete
ANIM_OT_delete_keyframe_button --> ANIM_OT_keyframe_delete_button
ANIM_OT_delete_keyframe_v3d --> ANIM_OT_keyframe_delete_v3d
ANIM_OT_insert_keyframe --> ANIM_OT_keyframe_insert
ANIM_OT_insert_keyframe_button --> ANIM_OT_keyframe_insert_button
ANIM_OT_insert_keyframe_menu --> ANIM_OT_keyframe_insert_menu
ANIM_OT_remove_driver_button --> ANIM_OT_driver_button_remove
ANIM_OT_remove_keyingset_button --> ANIM_OT_keyingset_button_remove
FILE_OT_add_bookmark --> FILE_OT_bookmark_add
GRAPH_OT_insert_keyframe --> GRAPH_OT_keyframe_insert
NLA_OT_add_actionclip --> NLA_OT_actionclip_add
NLA_OT_add_meta --> NLA_OT_meta_add
NLA_OT_add_tracks --> NLA_OT_tracks_add
NLA_OT_add_transition --> NLA_OT_transition_add
NLA_OT_remove_meta --> NLA_OT_meta_remove
PARTICLE_OT_remove_target --> PARTICLE_OT_target_remove
PTCACHE_OT_add_new --> PTCACHE_OT_add
2009-11-28 14:37:21 +00:00
Joshua Leung
afe4879991 Bugfix #20125: View 2D Zoom to Border was missing modal keymap
TODO: a better keymap for specifying zoom in or out mapped to LMB and RMB respectively for zoom to border is required. The current behaviour only allows zoom in...
2009-11-28 02:53:11 +00:00
Brecht Van Lommel
93b8098e0e Fix for bug #20039: panning and rotating view makes animation playback slow.
Recent click event changes moved variable up one level too far.

Also fixes use of timer event for fly operator, it should always check for
which timer it is, not really related to this bug.
2009-11-27 12:43:48 +00:00
Martin Poirier
7762aa8027 Click event detection ignores mouse move.
This makes it less tricky (don't have to hold the mouse extra still) but tweak events (like lasso) still  don't result in a click.
2009-11-26 18:36:24 +00:00
Elia Sarti
aa5227664a After talking with Matt about this, added notifier NC_ID to handle ID changes, specifically ND_ID_RENAME for ID renaming. Done for outliner, 3d view and properties editor. 2009-11-25 23:13:47 +00:00
Campbell Barton
f28975dbc4 avoid operator type lookups when its known 2009-11-24 16:19:15 +00:00
Martin Poirier
2597d49664 Extend handler return values to distinguish between events that have been handled and passed through and those that haven't been handled at all.
This also solves a bug with Click event (not visible with keymaps that use Click in default)
2009-11-24 05:03:44 +00:00
Brecht Van Lommel
af1f542367 2.5 bugfix: splash would crash when .Blog contained file names without a
slash in them. Also removed the ctrl+alt+f1 shortcut key, was for testing.
2009-11-23 20:06:09 +00:00
Martin Poirier
d1f314a217 New CLICK event value. If RELEASE is not handled and last event was PRESS of same type, redo handlers with CLICK value (this means you can "click" key events too).
Leftmouse+Ctrl to extrude now mapped to Click instead of Release. Release was used to avoid conflict with lasso, but it isn't safe with modal operators that use Press to confirm (subsequent Release then extruded). Click is semantically closer to what we want here.
2009-11-23 16:24:28 +00:00
Campbell Barton
f4d3ce197b links to Python API docs from splash and help menu 2009-11-23 15:20:56 +00:00
Brecht Van Lommel
7b036e1dcb Splash screen, implemented by Matt.
* Now has documentation links and recent files.
* Click on image or outside splash to make it go away.
* Still has old image, new one will be committed later.
2009-11-23 13:58:55 +00:00
Brecht Van Lommel
f8d40d2da0 2.5 internal bugfix: remove modal handlers before exiting the screen,
since these may be using it.
2009-11-23 11:49:23 +00:00
Campbell Barton
8e09171d5b temp hack to make the popup show wider when running the edit description operator 2009-11-23 00:56:19 +00:00
Brecht Van Lommel
1295a213a4 2.5: Emulate numpad works again. 2009-11-22 16:33:47 +00:00
Dalai Felinto
d875f4927e patch [#19796] GLEW update by Mitchell Stokes (Moguri)
GLEW update to version 1.5.1 [11-03-08]
this opens room for Geometry Shader support.

* - Brecht, Campbell told me you did some local changes in order to make it right in Linux. I get to you in order to know what those changes are (or feel free to commit them directly)
2009-11-21 20:36:03 +00:00
Martin Poirier
75e82b5349 More macro goodness.
Macros now return finished if at least one operator in the macro finished properly. This is done to correctly insert an undo point.

This means that all the macros that combine with transform (extrude, loopcut, rip, duplicate) will correctly insert an undo step when transform is cancelled.
2009-11-21 19:49:11 +00:00
Campbell Barton
09cf011879 patch from Dave Plater which fixes some problems building the BGE with cmake 2009-11-21 13:47:16 +00:00