kivy Changelog

What's new in kivy 1.11.0

Jun 3, 2019
  • Installation notes
  • Windows
  • [#6324]: We are transitioning the kivy Windows dependencies from the `kivy.deps.xxx` namespace stored under `kivy/deps/xxx` to the `kivy_deps.xxx` namespace stored under `kivy_deps/xxx`. Pip is sometimes not able to distinguish between these two formats, so follow the instructions below.
  • If you're **not upgrading** Kivy, please make sure to pin your `kivy.deps.xxx==x.y.z` dependencies to the versions that was on pypi when your Kivy was released so that you don't get newer incompatible dependencies.
  • If you're **upgrading** Kivy, manually uninstall all the `kivy.deps.xxx` dependencies because pip will not uninstall them when you're upgrading. Then re-install the `kivy_deps.xxx` dependencies as instructed on the Kivy website.
  • If you're installing the **first time**, simply follow the instructions on Kivy's website.
  • Linux and macOS
  • The new Linux wheels (#6248) can be installed with just `pip install kivy`, however, just like on macOS it comes without the Gstreamer dependencies so it has no video and minor audio support. For video/audio support, please install ffpyplayer and set `KIVY_VIDEO=ffpyplayer` in the environment, or install kivy using an alternative method that provides these dependencies.
  • Highlights
  • Support
  • [#5947]: We have moved from IRC to Discord. However, there's matrix integration if you are unable to use Discord. See https://kivy.org/doc/master/contact.html#discord.
  • Configuration
  • [#6192]: Support for environmental variables that control the config in the form of `KCFG_SECTION_KEY` has been added. E.g. setting `KCFG_KIVY_LOG_LEVEL=warning` in the environment is the same as calling `Config.set("kivy", "log_level", "warning")` or setting the `log_level` in the `kivy` section of the config to `warning`. Note that underscores are not allowed in the section names.
  • Any key set this will way will take precedence on the loaded `config.ini` file. Support for this can be disabled by setting the enviornmental variable `KIVY_NO_ENV_CONFIG=1` and the environment will not be read for configuration options.
  • KV lang
  • [#6257]: A new KV-Python integration event that fires when all the KV rules of the widget has been applied, `on_kv_post`, has been added to the `Widget` class. This event fires for a widget when all the KV rules it participates in has been applied and `ids` has been initialized. Binding to this event will let you execute code for your widget without having to schedule the code for the next clock cycle.
  • Similarly, a new `apply_class_lang_rules` method was added to `Widget` that is called in order to apply the KV rules of that widget class. Inheriting and overwriting that method will give you the oppertunity to execute code before any KV rules are applied.
  • Garden
  • We are transitioning the Kivy garden flowers from the `kivy.garden.flower` namespace stored under `kivy/garden/flower` or `~/.kivy/garden` to the normal python package format `kivy_garden.flower` namespace stored under `kivy_garden/flower`. With the new configuration, garden flowers will be `pip` installable, support cython flowers, and not require the custom garden tool.
  • We're hoping to transition all flowers to the new format, however, for now many flowers still require installation by the garden tool.
  • For users, see https://kivy-garden.github.io/index.html#generalusageguidelines. For developers, see https://kivy-garden.github.io/index.html#developmentguidelines for how to start a new flower, and https://kivy-garden.github.io/index.html#guideformigratingflowersfromlegacystructure for how to migrate existing flowers to the new format.
  • Other
  • [#6186]: Live resizing has been added for desktop platforms that use the SDL2 window backend.
  • Deprecated
  • [#6313]: Pygame has been deprecated. We urge users who have been using pygame to try SDL2 and our other providers. If there are any reasons why Pygame is used instead of SDL2 please let us know so we can fix them.
  • Deprecation warnings have also been added to everything that has been deprecated in the past.
  • Breaking changes
  • [#6095]: Changed the Android version to use `App.user_data_dir` for the configuration and added a missing dot to the config file name.
  • [#5340]: Removed DropDown.dismiss in on_touch_down so it is only dismissed in on_touch_up.
  • [#5990, #6169]: We now use pytest to run our tests rather than nose.
  • [#5968]: Listview and all its associated modules has finally be removed in favor of RecycleView.
  • Cache
  • [#5995]: : use Logger.trace to prevent the purge flooding terminal in debug
  • [#5988]: Removed cache print statements
  • Config
  • [#6333]: Properly chceck that KIVY_NO_ENV_CONFIG is not set to zero.
  • Inspector
  • [#5919]: Let the Inspector browse into WeakProxy'd widgets
  • Logger
  • [#6322]: PermissionError is not defined in py2.
  • Multistroke
  • [#5821]: Increase timeout/sleep to increase test robustness
  • Network
  • [#6256]: Set cookie header workaround
  • [#6083]: Added the ability to stop (kill) the UrlRequest thread
  • [#5964]: Allow setting url agent for async image and urlrequest
  • Properties
  • [#6223]: Fix handling None values in DictProperty and ListProperty
  • [#6055]: Cache values of AliasProperty where possible
  • [#5960]: Fix Cython properties syntax
  • [#5856]: Update AliasProperty to cache value only if "cache" argument is set to True
  • [#5841]: fix issues with `disabled` aliasproperty
  • Storage
  • [#6230]: Update jsonstore.py
  • Tools
  • [#6330]: Create changelog_parser.py
  • [#5797]: fix syntax table for emacs kivy-mode
  • Utils
  • [#6175]: kivy.utils.rgba function bug fix for python 3 (used to crash)
  • [#6311]: Fix versioning in CI and in kivy.
  • [#6295]: Add pep8 stage and name builds on travis
  • [#6250]: Disable wheel building on osx by not watching travis cron status.
  • [#6187]: Make travis brew update more reliable
  • [#6148]: Fix some travis errors
  • [#5985]: Remove notification webhook from travis
  • [#5978]: tell travis to use bionic instead of trusty for tests
  • [#5977]: Fix travis flaky test
  • [#5973]: try using xcode10 for travis, as we cannot reproduce the imageio issue locally
  • [#5934]: Fix repo path in github app config comment
  • [#5845]: fix osx wheels
  • Core
  • Camera
  • [#6168]: fix broken update to avfoundation
  • [#6156]: Adding fixes to support ios camera
  • [#6119]: Add support for opencv 4
  • [#6051]: Update camera_android.py; fixes camera for Python 3
  • [#6033]: adding division future import to prevent further fps bugs
  • [#6032]: ensure floating point math when calculating fps
  • [#6027]: Fix 5146
  • [#5940]: Set android camera to autofocus
  • [#5922]: Updated camera_opencv.py to use reshape(-1) instead of tostring()
  • Clipboard
  • [#6178]: Clipboard: fixes for nspaste
  • Image
  • #6194]: imageio: fix jpg/png saving
  • [#6193]: Image: don't force iteration if we reuse the cache
  • [#6142]: Fixes SDL2 image loading (jpg)
  • [#6122]: Allow saving a core Image into BytesIO
  • [#5822]: AsyncImage test fix for Windows py2.7
  • Spelling
  • [#5951]: Add a warning about support for pyenchant on windows
  • Text
  • [#5970]: fix styles from latests PR
  • [#5962]: Pango + fontconfig/freetype2 text provider
  • Video
  • [#6270]: Suggest how to fix unable to create playbin error.
  • [#6246]: Disabled set_volume() in core.video.ffpyplayer play() function. Fix for #6210
  • [#5959]: Issue 5945
  • Windows
  • [#6283]: Limit live resize to desktop
  • [#6179]: window: fix multiple resize sent, and always sent the GL size, never …
  • [#6164]: Removed default orientation hints on Android
  • [#6138]: Fix android's sensor orientation
  • [#6133]: Make top/left of window dispatch events on updates
  • [#6107]: Fixed fullscreen and orientation handling to work with SDL-2.0.9 on Android
  • [#6092]: Fix sdl close inconsistencies. closes #4194
  • Doc
  • [#6343]: Fix docs for the release
  • [#6334]: Add docs for linux wheels
  • [#6316]: Update doc of AliasProperty
  • [#6296]: Remove duplicate installation instructions.
  • [#6282]: example for adding, `background_color` to Label
  • [#6217]: add a few kv examples to widget docs
  • [#6215]: Added pillow as a required python library
  • [#6214]: Grammar tweaks
  • [#6204]: Update OSX Install instructions for MakeSymlinks
  • [#6199]: Replace "it's" with "its" in several places
  • [#6198]: Correct a grammar mistake in two places
  • [#6189]: Update docs referring the change from nose tests to pytest
  • [#6185]: Raises minimum OSX version for current DMG.
  • [#6180]: Updated version no. for SDL building
  • [#6159]: Update installation for RPI with notes for latest Raspian issues
  • [#6129]: typo in doc comments
  • [#6124]: Removed doc note about Python 3 on Android being experimental
  • [#6069]: : explain mechanics of size property
  • [#6061]: Fix rpi instructions
  • [#6049]: Lang widgets need to be capitalized
  • [#6047]: fix misspelling in docs
  • [#6031]: rewriting of installation instructions
  • [#6023]: Fix docstring example for Vector.rotate
  • [#6016]: : Add doc for transform_point
  • [#5971]: fix doc generation
  • [#5953]: FAQ about the "Unable to get Window: abort"
  • [#5943]: Fixed bounce
  • [#5925]: Fix Doc 'Input Management'
  • [#5912]: OS X to macOS in README
  • [#5911]: Maintain separate docs for different releases
  • [#5910]: Versioned docs
  • [#5908]: : corrected typo in docs
  • [#5903]: Correct iOS docs, add ref links
  • [#5900]: : fix typo in window docs
  • [#5896]: add missing versionadded to pagelayout's anim_kwargs
  • [#5895]: add an example for using UrlRequest
  • [#5887]: : Grammar tweaks to test docs
  • [#5879]: add instructions for Fedora dependencies
  • [#5869]: python basics
  • [#5858]: Fixed PEP8 in Pong examples
  • [#5850]: : Update for Python 3.7
  • [#5848]: Document the `data` parameter for add_json_panel()
  • [#5846]: Maintain separate docs for different releases
  • [#5840]: : Remove py34 substitutions in nightly lists
  • [#5839]: Docs: Fix Windows nightly wheel links
  • [#5833]: Docs: Add note about not yet available py3.7 packages
  • [#5790]: Removed checkbox doc info about colours outside 0-1 range
  • [#5765]: Update documentation for Clock.triggered decorator
  • Graphics
  • [#6269]: Add ability to specify dash offsets for Line
  • [#6267]: actually return value of wrapped gil_dbgGetAttribLocation
  • [#6247]: Fixes broken lines vertices
  • [#6232]: Respect the alpha value when setting rgb.
  • [#6112]: declare `_filename` in svg.pxd
  • [#6026]: Support building against mesa video core drivers.
  • [#6003]: : fix invalid offset calculation if attribute is optimized out
  • [#6000]: : Prevent enabling vertex attribute that are not in the shader
  • [#5999]: : Fixes KIVY_GL_DEBUG=1
  • [#5980]: Issue #5956: Fix casts in texture.blit_buffer for ushort and uint types.
  • [#5969]: Fix version number and supports ARGB/BGRA
  • [#5957]: Fix matrix transformation for orthographic projection
  • [#5952]: Change order of CGL backend to prefer dynamic GL symbol loading
  • [#5907]: Better #4752 fix
  • [#6145]: img_tools.pxi: Support pitch alignment in bgr->rgb conversion
  • Highlight
  • [#6062]: Activating Open Collective
  • Input
  • [#6286]: Add caps and numlock to the modifiers
  • [#6281]: SetWindowLongPtrW ctypes prototype bug
  • [#6264]: Fix the ctrl bug in hidinput (Issue #4007)
  • [#6153]: MTDMotionEventProvider, set thread name
  • [#6152]: HIDInputMotionEventProvider, set thread name
  • [#6012]: Fix HIDMotionEvent log formatting
  • [#5870]: Provider matching for input postproc calibration
  • [#5855]: add missing mapping for `numpaddecimal`
  • Lang
  • [#5878]: Make kivy.graphics.instructions.Callback available from within Kv lan…
  • Lib
  • Osc
  • [#5982]: Removed kivy.lib.osc from setup.py packages
  • [#5967]: Since osc is now available through oscpy, remove old crappy oscapi code
  • Modules
  • Screen
  • [#6048]: screen: add definition for OnePlus 3t
  • [#5928]: Add definition for the HUAWEI MediaPad M3 Lite 10 tablet
  • Showborder
  • [#6005]: add modules/showborder
  • Other
  • [#6303]: Update license file year.
  • Packaging
  • [#6341]: Bump cython max version.
  • [#6329]: Add Pyinstaller tests
  • [#6310]: Only delete files in kivy, properly detect git.
  • [#6306]: Fixes for PPA and CI
  • [#6305]: Re-enable building osx wheels and app
  • [#6275]: Add windows gst support without pkg-config.
  • [#6268]: Tested with cython 0.29.7
  • [#6182]: Update OSX SDL2/Image/Mixer/TTF to latest version
  • [#6165]: Include GStreamer in PyInstaller package
  • [#6130]: Removed python version specification from buildozer install
  • [#6128]: Fix reading description #6127
  • [#6054]: Add new "canonical" path for binary Mali driver
  • [#6046]: Added Arch Linux (ARM)
  • [#6008]: Allow to override build date with SOURCE_DATE_EPOCH
  • [#5998]: Change check for Cython to attempt fallback to setuptools on supporte…
  • [#5966]: Update with Cython 0.28.5
  • [#5866]: Add support for cross-compiling for the raspberry pi
  • [#5834]: Fix missing requirements for Python 3.6 64bit
  • [#5826]: Drop support for py3.3, which is EOL
  • [#5820]: automate .app/dmg creatio for both python2 and 3 on osx
  • [#5793]: Improve Makefile debug configuration
  • [#5777]: Update Cython to 0.28.3

New in kivy 1.10.0 (Feb 14, 2018)

  • Breaking changes:
  • [#3891] ButtonBehavior.always_release defaults to False, so by default a release outside the button is ignored.
  • [#4132] ButtonBehavior.MIN_STATE_TIME was removed and instead has been added to the config. Each button and dropdown now has their own configurable min_state_time property that defaults to the config value.
  • [#4168] kivy.metrics.metrics was removed, use kivy.metrics.Metrics instead.
  • [#4211] TextInput.background_disabled_active was removed, the normal background is used instead.
  • [#4254] kivy.utils.platform is now a string describing the platform and not a callable.
  • [#4603] Made App.on_pause default to return True.
  • [#4819] Remove kivy module extension support - it wasn't used.
  • [#4224] Remove pygst (audio, video, camera), gi (audio, video) and videocapture (camera) providers. Use gstplayer or ffpyplayer instead (https://kivy.org/docs/guide/environment.html#restrict-core-to-specific-implementation)
  • [#5011, #4828] added support for opencv 2 and 3 (camera)
  • [#5033] Clock trigger call doesn’t return True (or anything) anymore, use `is_triggered` instead.
  • [#5088] Change the auto scale option in BorderImage from bool to string with multiple scaling options.
  • Audio:
  • Add FLAC to GstPlayer extensions
  • [#4372] Added pitch shifting to audio using sdl2
  • [#4853] Add 'mp4' support to audio with gstplayer
  • [#4875] Added note that to seek, sound must be playing
  • Clipboard:
  • Detect correct Activity regardless of bootstrap (android)
  • [#3990] Store clipboard contents for gtk3 (ClipboardManager spec)
  • [#4093] Make clipboard_android work for both old and new toolchain
  • [#4371] Fix version warning for clipboard_gtk3
  • Fix Python 3.5-x64 Windows clipboard, see asweigart/pyperclip#25
  • [#5152] Fixed crash on python3, due to items not being subscriptable
  • Image:
  • Add JPE to supported sdl2 image extensions
  • [#3971] Fix stopping an image animation with value of -1 for anim_delay
  • [#4186] Accept data URIs for image filename
  • [#4708] Get actual image format instead of extension (imghdr)
  • [#4728] Use PILImage.frombytes when PILImage.fromstring gives an exception
  • [#4753, #4727] Image saving using 'save()' throws error
  • [#5155] Fix unicode image source in Python 2
  • Text:
  • [#3888] Fix PIL deprecated tostring() scrambling the text
  • [#3896] Add font rendering options - hinting, kerning, blending (sdl2)
  • [#3914] Add underline and strikethrough styling for Label and MarkupLabel
  • [#4265, #3816] Implement text outline for sdl2
  • [#4012] Fix label color handling
  • [#4047, #4043] Fix alpha rendering of text color for pygame
  • [#4063] Performance improved for comparing an entire string for Label
  • halign and valign
  • Add 'center' as an alias of 'middle' for Label.valign
  • Register all /usr/share/fonts subfolders
  • [#4625] Add ellipsis styling for markup label
  • [#4813, #2412] Change default font to core.text.DEFAULT_FONT
  • [#4846] Allow skipping italic, bold and bolditalic for the default_font
  • config option
  • [#4858, #4589, #3753] Add is_shortened to Label
  • Video:
  • [#4345] ffpyplayer provider was updated to work with the latest FFPyPlayer codebase.
  • [#5052] Fix ffpyplayer img.to_memoryview returning None
  • Window
  • [#3890] turn Window.focus into a read-only property
  • set Window.focus to false when the window is started in a hidden state
  • [#3919] SDL2/Android: fixes pause/resume crash using sdl2 bootstrap on
  • android
  • sdl2/android: redo fix on_pause/on_resume for SDL2 bootstrap. No more
  • freeze on resume.
  • [#3947] release gil when polling for sdl events
  • [#4104] window_sdl2: fix title and icon_filename to accept bytes or str
  • [#4207] add map_key/unmap_key, automatically map android back key
  • [#4209] Add SDL2 window events
  • [#4217] Fix Window resizing for X11
  • [#4239] X11: honor borderless configuration
  • [#4310] X11: implement on_title
  • [#4316] Animate the window content based on `softinput_mode`, introducing
  • keyboard_padding and keyboard_anim_args
  • [#4403, #4377] Take care to account for `density` for mouse_pos
  • [#4468] Prevent buffer crash on RPi if window was closed
  • [#4631, #4423] Fixes keycode typo
  • [#4665] Add softinput_mode handling for SDL2
  • [#4707] Add grab mouse in sdl2 window
  • [#4851] Add Window position manipulation
  • [#4919] Disable SDL2's accelerometer-as-joystick behaviour
  • [#4921] Add an allow_screensaver property for Window
  • [#4952] Add multiple joysticks support
  • [#5019] Add note for elevated use of on_dropfile
  • [#5048] Fix missing sys.stdout.encoding when piped or frozen
  • Keyboards:
  • [#4334] Add German keyboard layout
  • Style.kv
  • Fix disabled_color for markup
  • [#3925, #3922] Fix FileListEntry text alignment
  • [#3864] Avoid end-dev setting ColorWheel internal values
  • [#4176] Change TextInput images for selection handles
  • [#4364] Fix missing sp() in style.kv
  • [#4447, #4416] Fix filechooser size text align
  • Filechooser: Align size labels with the table header
  • [#4558] Separate image and button in Switch
  • [#4732] Hide Image if no app_icon in ActionPrevious
  • Base:
  • [#3955] Deprecate the interactive launcher
  • [#4427, #4361] Fix multiprocessing.freeze_support()
  • [#4449] Store kivy_home_dir as a unicode string in python 2
  • Make gif loader last (Gif loader is slow and should be used if PIL or FFPY providers don't work)
  • Gst should be imported first since it cannot use sdl2's zlib but sdl2 can use gst's zlib
  • [#4737] Remove sdl2 presplash after initialised (needs android package)
  • [#4874] Add Include folder to get_includes()
  • [#4949] Normalize version
  • Animation:
  • [#4223, #4222] Implement cancel_property on animation's Sequence
  • [#4494] Update ClutterAlpha URL in AnimationTransition
  • [#4563] Draw animation every frame by default, use step=0 instead of 1 / 60.0
  • [#4643] Animation object is passed with the event docs <<< REMOVE?
  • [#4696, #4695] Remove sequential animations from Animation._instances when
  • complete
  • App:
  • [#4075] Fix missing path separator
  • [#4636, #4634] App.stop() clear window children only if window exists
  • Compat
  • [#4617] Add isclose to compat based on py3.5 function
  • Clock
  • [#3603] Add clock to compat
  • Include clock changes for freebsd
  • [#4531] Bump max_iteration to 20
  • Config:
  • [#4813] Add variable for default_font
  • [#4921] Add variable for allow_screensaver
  • EventDispatcher
  • [#3736, #3118] Make widget kwargs passing higher priority than kv
  • Factory:
  • [#3975] Remove duplicate definition of SelectableView
  • [#4046] Register missing properties in factory
  • [#4108] Update factory registers (RecycleView, RecycleBoxLayout)
  • Graphics:
  • [#3866] Allow Line.points definition to be a mix of lists/tuples
  • [#3970] Fix upload uniform without calling useprogram
  • [#4208] Fix error in Line.rectangle documentation
  • [#4554] Allow requesting graphics instruction update
  • [#4556] Segmenats is 180 everywhere and in the docs
  • what is that? -> a37c8dd, 6dd8c5e
  • [#4700, #4683] Reactivate free calls in smoothline
  • [#4837] Restore gl/gles selection at compile-time
  • [#4873] path changes for config.pxi
  • [#4913, #4912] Fix missing 'return' in get method for Mesh `mode` property
  • [#5030] Fix BorderImage border ordering description
  • [#5091] Fix get_pixel_color for py3
  • Lang:
  • [#3909] Add apply_rules to BuilderBase
  • [#3984] Refactored lang.py - moved into its own module
  • Fix missing global_idmap in new kivy.lang refactor
  • [#4013] New ColorProperty and rgba function
  • [#4015] More robust kv string detection
  • [#4073, #4072] Split imports on all whitespace
  • [#4187] Fix Parser.execute_directive() not using resource_find() for including directive
  • [#4301] Fix parser not continuing after warning
  • [#4358] Allow spaces before colons for classes, properties
  • [#4583] Use consistent 'Lang' for logs instead of 'Warning'
  • [#4615] Fix profiling tool HTML output generation
  • Catch TypeError in dump_builder_stats
  • [#5054] Fix inconistent naming if kv files are not unloaded
  • [#5068] Unload matching rules
  • [#5153] Fix KV include for quoted paths
  • Lib:
  • [#4122] Add 'with oscLock' in sendBundle to always release lock
  • Correctly use oscLock in sendMsg
  • [#3695] Extend OSC library
  • Fix py2 print in OSC
  • [#4433] OSC - convert to bytes for python3
  • Ctypes supported on Android
  • Loader:
  • [#4359] Fix Exception on remote image
  • [#4545, #4366] Fix Asyncimage on error
  • Logger:
  • [#4057, #4039] Properly format log text
  • [#4375] Fix handling of PermissionError for logger.purge_logs
  • [#4400] Recognize {rxvt,rxvt-unicode}-256color as color capable
  • [#4404] Use a shorter field width for non-colored output
  • [#4538] Fix "no isatty() method" errors
  • [#5067] Replace hardcoded value `maxfiles` with config setting
  • Multistroke:
  • [#4803] Fix a silly multistroke crash
  • Network:
  • [#2772] Handle proxy servers in UrlRequest
  • [#4297] Fix py3 returning wrong results
  • [#4448] Fix url in UrlRequest
  • Parser:
  • [#4011] List supported input formats for parse_color
  • [#4021] Append alpha for 3 digit hex colors
  • Properties
  • [#4013] New ColorProperty and rgba function
  • [#4304] AliasProperty should update when underlying prop changes even if cache is
  • True:
  • [#4314] Don't cache until first dispatch, otherwise it's never dispatched if read before the dispatch
  • [#4623] Fix grammar in exceptions
  • [#4627] Allow conversion from strings without trailing units
  • [#5135] Add py3 object.__init__() reference to properties
  • Resources:
  • [#4490] Return `abspath` in `resource_find`.
  • Input:
  • [#3915, #2701] Don't offset WM_TOUCH with caption size when fullscreen
  • [#4045, #4040] Late import window for wm_touch
  • [#4318, #4309] Fix touch scaling for WM_TOUCH
  • [#4468] Fix HIDinput to dispatch events from main thread and don't eat escape
  • [#4501] Add on_stop to recorder
  • [#4621] Fix mtdev provider max_touch_minor option
  • Fix MTDev crashing if 'x' and 'y' are not in args
  • Fix MTDev crashing if touch not in last_touches
  • [#4725, #4413, #4682] Catch permission errors in MTDev
  • [#4923] Prevent an attempt to import AndroidJoystick with SDL2
  • Modules:
  • [#5143] Fix listing modules via `-m list`
  • Monitor:
  • [#4567] Fix monitor drawing issues after window resize
  • Code cleanup
  • Screen:
  • [#4396] Add a lot of new devices
  • Touchring, Cursor
  • [#4721, #3097] Touchring and Cursor are now two modules
  • WebDebugger:
  • Use events size function instead of list comprehension
  • Joycursor:
  • [#5094] Add JoyCursor module
  • Storage:
  • [#4269] Fix clear() not syncing the storage file
  • [#4722] Add JSON dump indention and sort_keys option to JSONStorage
  • Widgets:
  • Deprecate ListView
  • [#4944] Deprecate modules pertaining to ListView (AbstractView, Adapters)
  • [#4108] Integrate Recycleview into Kivy
  • Add warnings about RecycleView being experimental
  • [#4617] Adds size_hint_min/max to widgets
  • ActionBar:
  • [#3128] Introduce ActionGroup.dropdown_width property
  • [#4347, #4119] Fix ActionView layout more dense/packed after increase of width
  • [#4441] Fix dismiss in ActionGroup
  • [#4891, #4867] Fix Actionview window maximize/minimize bug
  • [#5049] Fix ActionDropDown.on_touch_down
  • AnchorLayout:
  • [#4628] Fix asymmetric padding list
  • Behaviors:
  • [#3900] Add CoverBehavior
  • [#4258] Allow keeping direct ref in knspace, fix crash when child knspace attr is None but parent doesn't have attr
  • [#4509] Fix CompoundSelectionBehavior example
  • [#4598, #4593] Fix ToggleButton released with allow_no_selection=False in
  • CompoundSelection:
  • [#4599] Add text_entry_timeout to CompoundSelection
  • [#4600] Allow all chars that are not e.g. arrow, and fix holding down key in
  • CompoundSelection:
  • Don't return true when already selected in CompoundSelection
  • [#4782, #4484] Allow unselect an item when multiselect is False in CompoundSelection
  • [#4850, #4817] Add CompoundSelectionBehavior.touch_deselect_last property
  • [#4897, #4816] Make _get_focus_* methods public in FocusBehavior
  • [#4981, #4979] Fix typo in CompoundSelection
  • Carousel:
  • [#4081, #2087] Fix repeating addition of widget
  • Use is operator for identity comparison
  • [#4522] Fix carousel scrollview children touch_move
  • CheckBox:
  • [#4266] Add checkbox color
  • CodeInput:
  • [#3806] Add EmacsBehavior to CodeInput
  • [#3894] Rename active_key_bindings to key_bindings
  • [#3898] Remove CodeInput.key_binding
  • Dropdown:
  • [#4112, #4092] Convert absolute coordinates of the touch.pos to relative
  • coordinates of self.attach_to(dropdown's button)
  • [#4511] Fix dropdown and spinner dismissing issue
  • [#4550, #4353] Rework of #4353 DropDown.max_height
  • [#4805, #4730] Fix first click in ActionGroup
  • FileChooser:
  • [#3710] Fix directory selection double-selecting
  • [#4200] Handle children's size_hints equal to zero
  • [#5010] Fix a crash when using a file as the path
  • GestureSurface:
  • [#3945] Remove line_width
  • [#4779] Fix collision check for on_touch_move
  • [#4034] Don't limit size to cols/rows_minimum, but treat it as real min.
  • [#4035] Respect size_hint in gridlayout
  • Image:
  • [#4510] Fix py2 ASCII error
  • [#4534] Removed long tracebacks
  • [#4545, #4549] Asyncimage on error
  • Label:
  • [#3946] Fix label rendering options
  • [#3963, #3959] Show disabled_color when disabled=True for markup label
  • ListView:
  • Include ListItemReprMixin
  • Add note about possible deprecation of ListView
  • [#2729] Don't require a text argument for CompositeListItems
  • ModalView:
  • [#4136] Fix model center not syncing with window center
  • [#4149, #4148] Fix modal background not resizing
  • [#4156] Fix incorrect ModalView position after window resize
  • [#4261] Don't return ModalView instance in open and dismiss methods
  • PageLayout:
  • [#4042] Fixed bug if zero or one widgets are in pagelayout
  • Code style improvement:
  • ScreenManager
  • [#4107] Fix Screen removal leaving screen.parent property != None
  • [#3924] Don't generate a new screen name for existing screens
  • [#4111, #4107, #2655] Remove the last screen and leave ScreenManager in a valid state
  • Don't check the Screen parent type, it can only be a ScreenManager
  • [#4464] Fix SwapTransition not scaling
  • Add missing import of Scale
  • [#5032] Add CardTransition to ScreenManager
  • ScrollView:
  • [#3926, #3783] Fix scroll distance bug
  • [#4014] Revert accidental non-pep8 scrollview changes
  • [#4032] Fix ScrollView not properly ignoring touch_up
  • [#4067] All touches that don't scroll should be skipped in touch move
  • [#4180] Scroll to touch pos if the touch is within the scrollbar but does not collide with the handle
  • [#4235] Make sure import does not load a window
  • [#4455, #4399] Focused widget inside ScrollView should unfocus on tap
  • [#4508, #4477] Always pop the touch
  • [#4565, #4564] Fix scrollview click registering on PC
  • [#4633] Postpone scroll_to if the viewport has pending layout operation
  • [#4646] Fix on_scroll_move to obey scroll_distance
  • [#4653] Add checks to start scroll if do_scroll enabled for axis
  • Add size_hint_min/max support to ScrollView
  • Use viewport's size_hint
  • Fix ScrollView ignoring scroll_y, scroll_x being set from outside
  • Settings:
  • Fix string_types double import
  • [#3625] Add show_hidden and dirselect to SettingPath
  • Slider:
  • [#4028] Fix Slider.value exceeding Slider.max
  • [#4127, #4124, #4125] Change use of dimension conversion in Slider
  • Add styling properties for Slider widget
  • Added value_track* properties
  • Spinner:
  • Ensure Spinner text is updated when text_autoupdate changes
  • Autoupdate spinner text only if the current text is not between the new values
  • [#4022] Add option to sync Spinner dropdown children heights
  • Update Spinner.text if empty, without comparing values
  • [#4511] Don't re add all widgets upon resize, it just lead to infinite size calc.
  • Fix type and don't used children directly since it could be modified
  • [#4547] Fixes opening for empty values
  • StackLayout:
  • [#4236] Fix stacklayout not sizing if children is empty
  • [#4579, #4504] Fix stackLayout children rearranging themselves unexpectedly when their parent's size changes
  • TabbedPanel:
  • [#4559] Fix scrolling in TabbedPanel
  • [#4601] Remove tab limit
  • TextInput:
  • [#3935] Altered get_cursor_from_xy to intuitively place cursor
  • [#3962] Add TextInput.password_mask to customize the password placeholder
  • [#4009] hint_text in TextInput shows when focused and no text entered
  • [#4024] Always show the textinput cursor at the moment of touch
  • [#4048] Use a trigger when resetting the textinput cursor state
  • [#4055] Implement wrapping of continuous text in textinput
  • [#4088, #4069] Fix disabled backspace
  • Fix infinite loop when width is negative
  • Don't reset focus when focus changes
  • [#4204] hint_text decode text by default
  • [#4227, #4169] Push flags correctly for linebreak in _split_smart
  • [#4367, #4244] Don't try to split lines shorter than 1px
  • [#4445] Prevent an infinite loop when trying to fit an overlong word
  • [#4453] Fix text going off-screen while wrapping
  • [#4560, #3765] Fix app crashing on do_cursor_movement('cursor_end') on empty text
  • [#4632, #4331] Clear selection_text directly
  • [#4712] Fixed space input under SDL2 for some Android keyboards
  • [#4745] Add cursor_width to TextInput
  • [#4762, #4736] Prevent setting suggestion_text crashes if text is empty string and canvas is not setup yet
  • [#4784] Made sure Selector gets on_touch_down only once
  • [#4836] Fix Bubble not reachable on Android when touch in textinput is near the borders
  • [#4844, #3961] Fix not working BubbleButton on_touch_up
  • [#5100] Fix TextInput crash when text, focus is set and enter pressed at same time
  • TreeView
  • [#4561] Add TreeView.deselect_node()
  • Video:
  • [#4961] Fix on_duration_change typo
  • Videoplayer
  • [#4920] Replace old video with CC0 licensed video
  • VKeyboard:
  • [#4900] Add font_size for key text size
  • [#5020] Fix file/kblayout opening
  • Widget:
  • [#4121, #3589] Check if canvas was found in parent canvas for export_to_png
  • [#3529] Rebind Widget.parent by default
  • [#4584, #4497] Avoid being behind parent's canvas when inserting a widget at last index
  • Tools:
  • Highlighting
  • Update Emacs mode to modern way of enabling newline and indent
  • Packaging:
  • [#4840, #4811] Fixed get_deps_minimal crash in Python3
  • PEP8checker:
  • Add shebang again
  • [#4798] Update pep8.py to version 2.2.0
  • Add E402 to pep8 ignore list
  • Normalize paths excluded from style checks
  • Match start of folder paths during pep8 check
  • Ignore E741 and E731
  • Exclude dir kivy/tools/pep8checker
  • Delete sample_for_pep8.py
  • Remove stylereport target from Makefile
  • Print error count during style check instead of passing it as exit code
  • Ignore style issues in kivy/deps
  • Report:
  • Fix StringIO for py2, raw_input/input, crash if GL not available. Add more detailed platform checking. Warn the user the gist is pasted anonymously.
  • Made ConfigParser py2/3 compatible
  • :Doc
  • [#4271, #2596] Fix docs build on Windows
  • [#4237] Add screenshots for widgets
  • Tons of doc fixes thanks to the awesome community
  • Special Thanks to ZenCODE for his awesome work on improving the doc
  • Examples:
  • [#3806] Add EmacsBehavior example
  • [#3866] Fix examples/canvas/lines.py example
  • [#4268] Fix takepicture requirements, use android.mActivity instead of autoclass
  • Add RecycleView example
  • [#4573] Add clipboard example
  • [#4513] Add an examples for Window.on_dropfile
  • [#4807] Add example for various color input
  • [#4862] Add joystick example
  • [#4883] Fix attribution in examples/widgets/lists
  • [#4925] Replace images with CC0
  • Fix KVrun example
  • Fix Settings example
  • Fix tabbed showcase example
  • [#5022] Revert SmoothLine in example
  • [#5027] Fix unicode error in KeyboardListener example
  • [#5035] Added KV example for CoverBehavior
  • Fix camera example - save image with extension
  • [#5079] Add shape collision example
  • Fix examples gallery
  • Fix SVG example - scale with only one value
  • [#5075, #4987] Split examples into separate wheel for windows
  • Unit Tests
  • Adapt ListView selection test to new behavior
  • Add test for TextInput focused while being disabled
  • [#4223, #4222] Add a test for issue #4222
  • [#4227] Add test case for word break
  • [#4321, #4314] Internal alias property details should not be assumed and tested
  • [#4624] Fix test_wordbreak fail on Retina Mac
  • Add simple tests for JsonStore options
  • [#4821] Fix test_fonts file deleting
  • Use almost equal for float assert
  • Clipboard should only accept unicode
  • [#5115] Replace Pygame with SDL2 for image comparing test
  • [#5111] Add test for Fbo.get_pixel_color
  • Packaging:
  • Tons of more fixes that weren’t mentioned here, details of which can be gathered from http://github.com/kivy/kivy
  • Migration:
  • [#3594] Remove KEX (extension) support
  • [#3891, #3312] ButtonBehavior.always_release default to False
  • [#4132] Include a min delay before dismissing
  • [#4168] Remove deprecated kivy.metrics.metrics
  • [#4211] Remove TextInput.background_disabled_active
  • [#4224] Remove deprecated video and audio providers: pygst, pyglet and pygi
  • [#4254] kivy.utils.platform is a string and it's not callable anymore
  • [#4603, #4796] Made on_pause default to True

New in kivy 1.7.2 (Aug 5, 2013)

  • Fix slowdown in graphics pipeline during gc
  • Change Window.clearcolor to 0, 0, 0, 1
  • Fix audio volume property
  • Add audio loop property for Sound object
  • Fix leak when using Animation.cancel() method
  • Fix few leaks related to Kv language

New in kivy 1.7.1 (May 29, 2013)

  • [#1192] "Black label" issue on old phone
  • [#1186] Reloading mipmapped label
  • [#1204] doubletap/tripletap for windows hardware
  • First-time configuration generation for linux/windows

New in kivy 1.7.0 (May 21, 2013)

  • Core:
  • [#1020] new App.user_data_dir, where user can store app state
  • [#1047] new markup subscript/superscript
  • [#1145] fix numpad keys mapping in Window
  • Animation starts the timer at the first frame instead on start()
  • Enhance clock calculation to have less glitch and be closer to 60 FPS.
  • New VariableListProperty property that support 1, 2 or 4 values. used for padding, spacing...
  • No more crash if no video core provider have been found
  • Refactoring event declaration, use __events__ instead of register_event_type()
  • Refactoring properties storage into a Cython class instead of a dict
  • Graphics:
  • [#1014] force Context.gc() to dealloc gl resources
  • add etc1 support for textures
  • fix Buffer memory allocation for block with the same size
  • fixes to support GL from Android emulator
  • fix shader warning when both vertex and fragment are set
  • new Fbo.pixels
  • new Matrix.project() for 3d to 2d transformation
  • new RenderContext use_parent_modelview and use_parent_projection
  • new Texture.pixels and Texture.save(fn)
  • Widgets:
  • [#1005] new Popup.title_size for title font size
  • [#1018] better Slider support for padding
  • [#1021] fix widget insertion with/without canvas.before
  • [#1032] fix Carousel animation when looping between 2 slides
  • [#1052] fix TextInput to allow ctrl+c work in readonly
  • [#1091] fix StackLayout spacing in multiple orientations
  • [#1122] improve splitter dragging
  • [#1140] fix ScreenManager when rotation is applied
  • [#1148] avoid freezing when a ModalView is open twice
  • fix DPI issues on Slider
  • introduce ScrollView effect, such as DampingScrollView and OpacityScrollview
  • introducing ScatterLayout (which is same as RelativeLayout, but based on Scatter)
  • new ColorPicker widget
  • new Scatter.translation_touches to allow translation only with X touches
  • refactoring RelativeLayout with only translation
  • refactoring ScrollView, improved performance and behavior
  • TextInput now use double and triple tap to select word and line
  • TextInput select the whole text on 4 touches
  • Various changes for padding, spacing, for supporting 1, 2 or 4 values
  • Lang:
  • introduce prefix '-' to avoid applying previous rules
  • new Dynamic classes, Templates are now deprecated
  • Inputs:
  • fix doubletap behavior
  • new tripletap post-processor module
  • Others:
  • [#1023] better inspector widget selection
  • [#1024] add font-size demo to showcase
  • [#1038] fix Gstreamer sound.seek()
  • [#1125] more fixes on listview examples
  • [#849] new kivywinescript to execute kivy python within wine
  • Garden project! Including kivy.garden and garden script
  • new kivy.storage api for storage abstraction (experimental)
  • Refactoring documentation
  • tons of documentation fixes by Zen-CODE!

New in kivy 1.6.0 (Mar 13, 2013)

  • Core:
  • Add justify support for text alignment
  • Fixed descriptor error in EventDispatcher.getattr
  • Fixes memory leak when log_enable = 0 in config
  • Fixes network image reloading
  • Fixes Python strings for 2.6
  • Fixes ImageIO crash if image cannot be loaded
  • Fixes zip loader to skip errors
  • Add support for GIF transparency in PIL
  • Core logs are now reduced, and traceback is available only in trace
  • Enhance Clock to accept only callable() in schedule methods
  • EventDispatcher can be weak-referenced
  • Fixes image reloading when Window is resized on OSX
  • Fixes Window fullscreen, even when the config is "auto"
  • Fixes Window.screenshot for rotated window
  • Improve Kv: avoid to parse on_* expression, just exec them.
  • New MotionEvent.is_mouse_scrolling
  • Rework Loader internals, limit to 2 threads workers and images upload per frames
  • Graphics:
  • Fixes Line.ellipse/circle instructions
  • Add Texture support for paletted texture
  • Add Texture support for PVRTC (iOS and PowerVR GPU only)
  • Enhanced vertex format to allow custom format.
  • Fixes crash on the Adreno 200 GPU / Android - force POT texture
  • Reworked graphics vertex instructions to support custom format as well
  • Widgets:
  • Improve ListView usage with Kv language
  • New Bubble.limit_to for limiting the bubble position
  • Fixes Slider positioning when padding is used
  • Fixes empty markup rendering
  • Fixes cursor positionning in CodeInput
  • Fixes Scrollview scrolling with mousewheel if it's disabled
  • Image log an error when an image cannot be loaded
  • Fixes BoxLayout.pos_hint for children
  • Enhance TextInput bubble for long-press and readonly
  • Fixes ProgressBar value boundaries
  • Fixes GridLayout children size_hint
  • Add ListAdapter.data property to allow changing the data
  • Fixes ScreenManager green color to black in ShaderTransition
  • New TextInput placeholder
  • Fixes Carousel positioning and reduce calculations
  • Add mousewheel support on Slider
  • Enhance TabbedPanel to allow no default tab
  • Fixes for TextInput rendering glitch
  • Fixes RelativeLayout.clear_widgets()
  • Fixes ScrollView gesture ability on X when scrollview is Y only (and the inverse)
  • Fixes TextInput wrapping
  • New (Async)Image.nocache no prevent caching (data, texture)
  • New Screen events: on_pre_enter/enter/pre_leave/leave
  • New ScreenManager.has_screen() method
  • Others
  • Fixes inspector crash
  • iOS: Updated SDL, launch images are now supported
  • New 3D rendering example with lightning and a monkey
  • Tons of fixes on Documentation !

New in kivy 1.5.1 (Dec 14, 2012)

  • Widgets:
  • Avoid to react on scrollleft/right on Button + FileChooser
  • Graphics:
  • Fix Line instruction
  • Examples:
  • Fix Kivy catalog to work from a different cwd

New in kivy 1.5.0 (Dec 14, 2012)

  • Core:
  • BoundedNumericProperty can have float bounds
  • Fix SetWindowLongPtr on 32/64 Windows
  • Fix AsyncImage loader on iOS
  • Prevent the Pygame parachute if we don't have the required
  • Better DPI support, with new sp and dp units
  • New screen module for simulating different DPI devices
  • Fix on_resize dispatch on Windows and OSX
  • Allow multiple providers in Kivy env variables
  • Fix line off-by-one issue in Kv errors
  • New errorhandler/errorvalue in Property class
  • New experimental X11 window provider, that support transparent
  • Normalize android pressure and radius
  • Reduce gstreamer audio/video out-of-sync
  • Support ability to stop/restart the EventLoop
  • Graphics:
  • Avoid error in case of multiple Canvas.rremove()
  • Add more information when GLEW fail to initialize
  • Allow source unicode filename in BindTexture
  • Allow to change Stencil operators
  • Avoid BGRA->RGBA conversion for OSX if the GPU support BRGA.
  • Fix issue with Cython 0.14, "by" is now considered as a keyword
  • Line: add bezier and bezier_precision properties
  • Line: fix missing ellipse/circle/rectangle in the Line constructor
  • Texture: always flip the texture vertically for Image and Label
  • Widgets:
  • Raise exception if ScreenManager.start() is called twice
  • Avoid touch event propagation on ScreenManager transition
  • Enhance TextInput performance
  • Fix pos_hint Boxlayout calculation
  • Fix collapse management in Accordion
  • Fix widget opacity when passed in the constructor
  • Fix slider bug when min < 0, max < 0 and step > 0
  • Better swipe gesture detection for Carousel
  • Honor index in Carousel.add_widget() (and Bubble)
  • New CodeInput widget
  • Dispatch modalview.on_open after animation
  • Allow event binding in Widget constructor
  • Fix canvas positioning when inserting at first position
  • Add top-to-bottom + right-to-left Stacklayout orientations.
  • Fix shorten routine
  • Automatically register new Widget classes in Factory
  • Enhance ScrollView scrolling
  • Fix Carousel API, containers are now hidden, and
  • Fix Label.color property for markup labels
  • Multiples fixes to TabbedPanel (tab_strip, unbind, tab selection)
  • Others:
  • New compass demo for Android using sensors
  • Many many fixes on the documentation, thanks for all the PR!
  • New KivyCatalog example: interactive Kv editor
  • Started Guide 2.0

New in kivy 1.4.1 (Oct 3, 2012)

  • Core:
  • Extend NumericProperty to support DPI notation
  • Add callbacks support on ConfigParser for a (section, key)
  • Fix Markup text disapear on GL reloading
  • Enhance UrlRequest for small chunks, callbacks and GC
  • New Audio.get_pos()
  • Fix key translations on Keyboard
  • Force on_parent dispatching for children in a kv rule
  • Expose 'app' instance keyword in Kv language
  • Graphics:
  • Added opacity support in the graphics pipeline
  • Enhanced Line instruction that support width, joint, cap.
  • Added Line.circle/ellipse/rectangle properties
  • Widgets:
  • Fix TextInput crashes is some cases
  • New Widget.opacity property
  • New TextInput.background_normal/active
  • Fix Slider value when min and step > 0
  • Fix Carousel.remove_widget()
  • Fix SettingNumeric with int/float values
  • Enhance BoxLayout to support pos_hint
  • Fix ModalView background property
  • Windows:
  • Fix WM_Touch / WM_Pen for 32 bits / 64 bits
  • Others:
  • Fixes gstreamer packaging with PyInstaller
  • Updated documentation concerning PyInstaller 2.0

New in kivy 1.4.0 (Oct 3, 2012)

  • Core:
  • Fix nested template
  • Fix url loader with querystring
  • Markup text can be vertically aligned
  • Enhance add_widget() to raise an Exception on multiple parents
  • Support of smb:// in url loader with pysmb
  • Enhance AliasProperty to cache the result if use_cache is set to True
  • Enhance App.get_application_config() to get a correct config filename on all platforms
  • Fix Animation.stop_all() + new Animation.cancel()
  • Fix Property.unbind() for bounded methods
  • Graphics:
  • Fix crash when loading 1bit image
  • Fix Quad() initialization
  • Widgets:
  • Fix multiple content in TabbedPanel from Kv
  • Enhance TabbedPanel to introduce default_tab_class
  • Popup can now define the content in Kv
  • Enhance TextInput with select_all() and select_text() methods
  • Fix usage of Camera within Kv
  • Enhanced VideoPlayer to have pause ability and state property
  • Enhance Image widget to add keep_data for further pixel collision detection
  • New Carousel widget
  • New Checkbox widget
  • New Dropdown widget
  • New ModalView widget
  • New RelativeLayout, identical from FloatLayout with relative coordinates
  • New ScreenManager widget for changing views with transitions
  • New Slider.step property
  • New Spinner widget
  • Windows:
  • Fix ghost touch due to a raise condition
  • Add python scripts into the PATH
  • Enhance input wm_touch/pen to be compatible with 64bits
  • Severals fixes around window resizing
  • Others:
  • New Getting Started
  • Tons of documentation typo, fixes.

New in kivy 1.3.0 (Oct 3, 2012)

  • Core:
  • Fix pygame error when texture is too large
  • Updated Sound class to use Kivy properties
  • New Sound.length
  • New kivy.interactive module: doesn't break REPL anymore
  • Make default values in properties optionals
  • Replaced all relative import with absolute imports
  • Fixes Image to allow re-loading of image from disk
  • Renamed unicode parameter to codepoint in all on_key_*
  • Changed default screenshot to be PNG instead of JPEG
  • Enhance Kv lang rules lookup
  • Enhance Label initialitazion
  • Fixes crash on App when the configuration file cannot be read
  • Fixes for graphics reloading mechanism, force the GC before
  • New default UI theme
  • New KIVY_NO_CONFIG, KIVY_NO_FILELOG, KIVY_NO_CONSOLELOG env
  • New kivy.utils.escape_markup() to escape untrusted text when
  • Graphics:
  • Fixes for glColorMask on android
  • Add new ClearColor and ClearBuffers instructions
  • Fixes glGetIntegerv with new Cython
  • Fixes for Translate instance when args passed in on
  • Avoid drawing of empty VBO
  • Enhance Stencil instruction, you can nest up to 128 layers instead
  • Fixes crash when texture is empty (0px width or height)
  • Fixes Point instruction when new point is appended
  • Fixes to enable support of NPOT texture on android/ios platform
  • Widgets:
  • New Scatter.do_collide_after_children property
  • New TabbedPanel widget
  • New TextInput.readonly property
  • Fix popup background resizing when Window resize
  • Fixes StackLayout size_hint missing calculation
  • Fixes VideoPlayer scrollbar with multitouch
  • Fixes ToggleButton memory leak
  • Add FileChooser.file_encodings for a better unicode conversion
  • Better handling of mousewheel in Button
  • Delayed Label texture creation
  • Enhance RST widget to support :align: in image directive
  • Fixes RST widget to use document root for loading images and
  • New Popup.dismiss(animation) attribute to disable the fadeout when
  • New RstDocument.goto(reference) for scrolling the document to a
  • New Undo/Redo for TextInput
  • Windows:
  • Fixes preference order for the camera provider
  • Fixes some GL crash on Windows due to missing dynamic lookup of

New in kivy 1.2.0 (Oct 3, 2012)

  • Core:
  • New Window.mouse_pos to get the main mouse position anytime
  • Improved markup positioning with glpyhs+kerning
  • Avoid rendering of empty text lines
  • Fixed setter() and getter() EventDispatcher methods
  • Implement new Dropfile event, to be able to open files on macosx
  • Optimized texture upload from 3 to 1 upload in somes cases
  • The system/Window can now "pause" the application if the app support it
  • Graphics:
  • Disable mipmapping for people using Desktop GL kivy < 3.0
  • Enhanced graphics engine to support OpenGL reloading / context-lost
  • Optimized shaders uniform upload if not used
  • Optimized VBO drawing by using a GPU buffer for storing indices
  • Modules:
  • Recorder now record keyboards events
  • Fixes for inspector / memory leak
  • New webdebugger module for having statistics on the current running app
  • Widget:
  • New VideoPlayer widget: Video + controls buttons, annotations and
  • Propagate touchs to children for Label and Button
  • Removed redundant background_texture on Bubble
  • New background_color and foreground_color to TextInput
  • New password mode to TextInput
  • Fixes clipboard for linux, works perfect on linux, windows and mac
  • Improve performance on TextInput dealing with large text
  • Enhanced FileChooser to delay the file creation over the time, and display
  • Enhance FileChooser to animate when scrollwheel is used
  • Enhance scrollview to animate when scrollwheel is used
  • Fixed Bubble not listening to color changes
  • New FileChooser.rootpath to restrict file browsing
  • New scrollview scrollbar (not touchable)
  • New ".. video::" directive in the RstDocument widget
  • New Video.seek() method
  • Updated filechooser icon theme
  • Examples:
  • New examples dealing with unicode
  • Others:
  • Fixes for msvc9 compilation errors
  • Fixed pyinstaller packaging for macosx
  • Add installation instructions for mageia

New in kivy 1.1.1 (Apr 2, 2012)

  • [#403] Pygame audio loader doesn't work (in addition to camera opencv provider)