Version

Quick search

Table Of Contents

Changelog

2.1.0

Highlights

  • [#7270]: Graphics: Check whether user updated GL instructions from external thread.

  • [#7293]: Properties: Add dynamic screen density/dpi support

  • [#7371]: KV: Allow using f-strings in KV-lang

  • [#7424]: Properties: Speed up bare widget creation (3X) and property dispatching/setting

  • [#7587]: Fix PermissionError when reconnecting mtdev input devices

  • [#7637]: Added Custom titlebar support

  • [#7642]: TextInput loading time optimisation for large texts

  • [#7658]: Feature: EventManagerBase

  • [#7663]: Add python3.10 in the ci configuration

  • [#7678]: Add support for Apple Silicon on CI/CD

Deprecated

  • [#7701]: deprecate ‘kivy.utils.SafeList’

  • [#7786]: WindowBase: Add on_drop_begin, on_droptext and on_drop_end events

Breaking changes

  • [#6290]: Widget: Fix signature of add/remove/clear_widget to be consistent with base class

  • [#7264]: Camera: Change play default to False

  • [#7356]: Widget: Widget.clear_widgets empty widget list does not remove all children

  • [#7437]: TextInput: Remove broken and confusing suggestion_text property

  • [#7744]: Change default input_type to null. Add some warning regarding TYPE_TEXT_FLAG_NO_SUGGESTIONS

  • [#7763]: Removed Python3.6 from the supported ones, it reached EOL

  • [#7820]: Patch gst current release to look for dlls in correct place for win store

Kv-lang

  • [#7371]: KV: Allow using f-strings in KV-lang

  • [#7703]: refactor kivy.lang

Misc

  • [#7204]: Kivy: print kivy’s version even when not a release.

  • [#7271]: Inspector: Prevent circular import breaking Window

  • [#7403]: Exceptions: Fix typos in message

  • [#7433]: Source: Fix typos in source code

  • [#7453]: Screen: Added Oneplus 6t in screen module

  • [#7701]: deprecate ‘kivy.utils.SafeList’

Packaging

  • [#7341]: OSX: Use platform.machine() for osx version detection

  • [#7605]: PyInstaller hook: Replace modname_tkinter with ‘tkinter’

  • [#7781]: PyInstaller develop version isn’t needed anymore

Widgets

  • [#7049]: Camera: Fix GI camera provider crash when no texture is available after loading

  • [#7213]: ScrollView: Match scroll effect stop condition to start condition.

  • [#7261]: Camera: Revert “Fixes crash during camera configuration”

  • [#7262]: RecycleGridLayout : Fix layout when number of widgets match number of columns

  • [#7264]: Camera: Change play default to False

  • [#7322]: Widget: fix export_to_png not passing arguments through

  • [#7353]: RecycleLayout: Allow setting x, y sizing of views independently

  • [#7372]: Focus: Allow modifiers (e.g. numlock) be present to tab cycle focus

  • [#7383]: Dropdown: Fix reposition in scrollview/recycleview

  • [#7391]: Factory: Registered TouchRippleBehavior and TouchRippleButtonBehavior with Factory

  • [#7426]: Dropdown: Ensure visibility on reposition

  • [#7434]: ModalView: code cleanup regarding detection of main-Window:

  • [#7437]: TextInput: Remove broken and confusing suggestion_text property

  • [#7457]: ScrollView: Fix for scroll bar areas blocking clicks when scroll is disabled with overscroll

  • [#7471]: Video: Add support for preview image

  • [#7488]: FocusBehavior: Fix assumption that modifiers is always a set.

  • [#7520]: Video: Fixed handling eos after unloading

  • [#7527]: Label: Fix label not displaying as disabled if it is disabled when created

  • [#7548]: Fixes issue #7514 (‘auto_halign_r’ referenced before assignment)

  • [#7610]: Added scroll from swipe feature in TextInput

  • [#7612]: Fixed unexpected overscrolling bug when using mouse wheel

  • [#7615]: Fixed unexpected overscrolling bug when using mouse wheel, complement to #7612

  • [#7618]: Fixed TextInput visual selection bugs while scrolling

  • [#7621]: Fixed inconsistent behavior of TextInput bubble and handles

  • [#7622]: Fixes TextInput cursor issues when resizing/scrolling

  • [#7631]: Fixes some bugs in the TextInput if the text is right-aligned or center-aligned and not multiline.

  • [#7636]: Textinput on double tap improvement

  • [#7641]: Textinput: Fixes issues #7165, #7236, #7235

  • [#7642]: TextInput loading time optimisation for large texts

  • [#7706]: SettingColor: Change method name to get_color_from_hex

  • [#7737]: CodeInput: fixed disappearing lines after inserting text

  • [#7740]: TextInput: easier tokenize delimiters setting; quotes removed from default delimiters

  • [#7775]: Don’t let ‘ScrollEffect.reset()’ set ‘is_manual’ to True

  • [#7796]: EventManagerBase: Fix indentation and typos in the doc

  • [#7807]: Textinput: Simplified the swipe feature logic. Fixed a bug that was preventing to show the select all / paste bubble

  • [#7814]: :zap: Prevent crash (overflow error) when scrollbar is hidden

  • [#7816]: VideoPlayer: Defer before the next frame the default thumbnail and annotations loading

Core-app

  • [#7173]: Logger: Do not mutate log record, fixes #7062

  • [#7245]: Resources: Add a cache for resource_find

  • [#7293]: Properties: Add dynamic screen density/dpi support

  • [#7300]: Logger: Remove refactoring artifact

  • [#7307]: Logger: Remove purge log’s randomized behavior

  • [#7326]: Command line: Fix disabling kivy cmd args

  • [#7429]: Clock: Print remaining events before next frame upon too much iteration error

  • [#7505]: EventLoopBase: Remove provider from auto-remove list

  • [#7508]: App: Process app quit event while paused

  • [#7512]: EventLoopBase: Start/stop event loop only once

  • [#7749]: collections fix for python 3.10

  • [#7763]: Removed Python3.6 from the supported ones, it reached EOL

  • [#7771]: Explain the ‘–’ separator for option parsing.

  • [#7810]: Track whether the clock has started

Core-providers

  • [#7228]: Image: Fix PIL label rendering shadow

  • [#7231]: Keyboard: Add keyboard suggestions and fix input type on android

  • [#7260]: Camera: Use NSString instead of AVCaptureSessionPreset in order to support MacOS < 10.13

  • [#7263]: Camera: Added API to change avfoundation camera provider orientation

  • [#7279]: Window: prevent “empty” mousewheel events from breaking scrollview

  • [#7290]: Camera: improve avfoundation by using memoryview and re-scheduling the interval on framerate change

  • [#7299]: Window: Handle DPI Windows messages until SDL2 handles them

  • [#7303]: Camera: Fix AVFoundation provider to release the camera, start it async, and check if started before stopping it

  • [#7339]: Camera: Android camera focus mode fix

  • [#7347]: Window: Delay binding dpi until window is ready.

  • [#7389]: Mouse: Fix mouse being offset by 2 pixels vertically

  • [#7390]: SoundAndroidPlayer: Properly stop after playback completion

  • [#7409]: Window: Fix logging message

  • [#7418]: Video: Reduce latency from user interaction for ffpyplayer

  • [#7467]: Text: Raise when registering a font_regular with None

  • [#7484]: WindowBase: Add to_normalized_pos method

  • [#7517]: Core: Use importlib’s __import__ for compatibility with patching

  • [#7541]: SoundLoader: Fix play calls not working in ffpyplayer after the first

  • [#7620]: removed print and added logging to flipVert

  • [#7637]: Added Custom titlebar support

  • [#7647]: WindowBase: Change type of clearcolor property to ColorProperty

  • [#7648]: WindowBase: Add transform_motion_event_2d method

  • [#7688]: Fix dds header comparison

  • [#7726]: Window.softinput_mode fix for “pan” and “below_target” modes when using kivy virtual keyboard.

  • [#7744]: Change default input_type to null. Add some warning regarding TYPE_TEXT_FLAG_NO_SUGGESTIONS

  • [#7770]: WindowBase: Update bind list of properties: system_size, size, width, height and center

  • [#7778]: WindowBase: Don’t return motion event in transform_motion_event_2d method

  • [#7786]: WindowBase: Add on_drop_begin, on_droptext and on_drop_end events

  • [#7793]: WindowBase|WindowSDL: Add drop position for all on_drop_xxx events

  • [#7795]: WindowBase: Add *args to on_drop_xxx events

Core-widget

  • [#6290]: Widget: Fix signature of add/remove/clear_widget to be consistent with base class

  • [#7209]: Animation: Allow canceling all animated widgets

  • [#7356]: Widget: Widget.clear_widgets empty widget list does not remove all children

  • [#7424]: Properties: Speed up bare widget creation (3X) and property dispatching/setting

  • [#7439]: Properties: Drop long number type and document numpy issues with NumericProperty

  • [#7442]: EventDispatcher: Removed/replaced all basestring occurrences with str

  • [#7445]: EventDispatcher: Rename method unregister_event_types to unregister_event_type

  • [#7449]: TextInput: Fix readonly mode preventing using cursor keys, wrapping, and more

  • [#7459]: Properties: Accept str-subclass where we accept strings

  • [#7536]: EventDispatcher: Add nicer error message for non-existing properties

  • [#7658]: Feature: EventManagerBase

  • [#7774]: Fix widget.disabled handling of value change of equal truthiness

Distribution

  • [#7257]: Setup: Fix buggy detection of cython module name

  • [#7362]: Build: No oneliners in [options.extras_require]

  • [#7663]: Add python3.10 in the ci configuration

  • [#7678]: Add support for Apple Silicon on CI/CD

  • [#7711]: Add an option to force a custom search path for SDL2 frameworks + fixes ARCHFLAGS

  • [#7762]: macOS deps: Update SDL to 2.0.20 and update SDL_ttf to 2.0.18

  • [#7769]: Add Linux AArch64 wheel build support

  • [#7777]: Bump to 2.1.0rc1

  • [#7802]: Bump to 2.1.0rc1

  • [#7804]: Use the KIVY_RPI_VERSION env variable to force the build of egl_rpi in non Raspi CI builds

  • [#7813]: Bump cython and kivy_deps versions to latest

  • [#7820]: Patch gst current release to look for dlls in correct place for win store

  • [#7821]: Bump to 2.1.0rc2

  • [#7822]: Bump to 2.1.0rc3

Documentation

  • [#7010]: Doc: Warn that decorated methods might not be bindable.

  • [#7284]: docs: fix simple typo, expressons -> expressions

  • [#7286]: Doc: Add negative size warning

  • [#7288]: Documentation: Updated prerequisites and supported python version for iOS

  • [#7295]: Doc cleanups

  • [#7301]: Doc: Add Kivy config example for inverted mtdev events

  • [#7305]: Slider: Fix step property docs

  • [#7328]: Added documentation for RecycleView viewclass statefullness, including a warning, context paragraph, and minimal example

  • [#7342]: TabbedPanel: Doc calling switch_to from __init__

  • [#7344]: App: fix Trio example in docstring

  • [#7358]: Doc: Fix doc code formatting

  • [#7359]: Fix first doc line being ignored

  • [#7366]: Docs: use print() in docs, comment and generated code

  • [#7392]: Docs: Fix packaging-osx docs (homebrew)

  • [#7432]: Docs: Fix codespell found typos

  • [#7435]: Docs: check for “sphinx” in command line

  • [#7441]: Docs: Fix creating of docs of compoundselection.py

  • [#7451]: Docs: Fix Type Error when creating bytes from array in Python 3

  • [#7481]: Doc: Properties spelling fix

  • [#7497]: Docs: Use python3 super in example

  • [#7560]: Comment references the wrong layout

  • [#7561]: Typo on docs, missing “the”

  • [#7580]: Fix line number references in basic.rst

  • [#7581]: Fixes double word in docs

  • [#7592]: Fix missing word in doc/guide/events.rst

  • [#7603]: Fixes pong tutorial collision on the right side.

  • [#7614]: Fix install command for zsh

  • [#7623]: Sphinx: Use class instead of instance in add_lexer + Fixes search on sphinx>1.7.9

  • [#7624]: Sphinx: Fixes missing documentation_options

  • [#7625]: Update line number references in documentation

  • [#7672]: fix various docs

  • [#7693]: Remove wording and functions specific to Python 2

  • [#7717]: MotionEvent: Fix docstring in dispatch_done method to reference post_dispatch_input

  • [#7752]: Improves docs on mobile, fixes duplicated getting started

  • [#7757]: Update README.md

  • [#7764]: Update license year

  • [#7766]: Add support for older Sphinx versions

  • [#7773]: Docs review before release 2.1.0

  • [#7790]: made code examples user friendly; fixes #7720

  • [#7799]: Dark Theme support for docs

  • [#7801]: made Generic Prompt unselectable

  • [#7815]: MotionEvent: Fix indentation in module doc

  • [#7826]: add GitHub URL for PyPi

  • [#7830]: EventManager: Fix typo in module doc

Graphics

  • [#4854]: Graphics: Add Sdl2 vsync

  • [#7270]: Graphics: Check whether user updated GL instructions from external thread.

  • [#7277]: SVG: Fix SVG instruction iteration for python 3.9.

  • [#7455]: Graphics: Only check for threading issues once graphics is initialized

Input

  • [#7387]: Mouse: Update MouseMotionEventProvider to dispatch hover events

  • [#7425]: Mouse: Fix computation of relative touch position in MouseMotionEventProvider

  • [#7492]: MouseMotionEventProvider: Refactor of provider and tests

  • [#7549]: MouseMotionEventProvider: Add disable_hover property

  • [#7587]: Fix PermissionError when reconnecting mtdev input devices

  • [#7644]: MouseMotionEventProvider: Update doc of disable_hover property

  • [#7659]: MotionEvent: Fix scale_for_screen method

  • [#7679]: MotionEvent: Fix calculation of z values in scale_for_screen method

  • [#7684]: Enable pressure for touches in android (and ios?)

  • [#7691]: MotionEvent: Fix keeping of the previous normalized position

  • [#7714]: MouseMotionEventProvider: Update simulated touch graphics on window resize or rotate

  • [#7785]: Input providers: Assign type_id to MotionEvent subclasses

Tests/ci

  • [#7176]: Dev: Add pre-commit.com framework hooks

  • [#7292]: Benchmarks: Add benchmarks option measurements to pytest

  • [#7461]: AsyncImageTestCase: Fix for test_reload_asyncimage method and cleanup

  • [#7464]: Makefile: Add test commands to show missing coverage lines

  • [#7466]: Tests: Increase test coverage

  • [#7475]: MouseHoverEventTestCase: Skip testing on Windows platform

  • [#7483]: MouseHoverEventTestCase: Enable some tests on Windows CI

  • [#7493]: GraphicUnitTest: Add clear_window_and_event_loop method

  • [#7494]: MouseHoverEventTestCase: Dispatching event on_cursor_leave to cleanup some tests

  • [#7495]: CI: Removed unused id_rsa.enc. ssh keys are in the secret env

  • [#7502]: MultitouchSimulatorTestCase: Don’t render widgets in tests

  • [#7509]: CI: Switch rsa ssh key to ed25519 for server upload

  • [#7513]: Tests: Latest pyinstaller includes fixes for tests

  • [#7515]: GraphicUnitTest: Fix signature of tearDown method to use (*args, **kwargs)

  • [#7516]: MouseHoverEventTestCase: Removed skip of test methods on Windows CI

  • [#7674]: temporary force python3.9 use in the ci

  • [#7676]: Bump support-request to v2. Previous integration has been shut down.

  • [#7760]: Fixes benchmark tests on wheels

  • [#7780]: Updates action-gh-release and use the default token

  • [#7784]: Linux AArch64 wheel build optimization

  • [#7794]: Bring perf_test_textinput inline with changes in TextInput

  • [#7827]: Increase timeout to avoid failing tests on windows-2022

2.0.0

Highlights

  • [#6351]: Core: Drop Python 2 support

  • [#6368]: Core: Add async support to kivy App

  • [#7084]: Dependencies: Add basic dependencies to install requirements

Breaking changes

  • [#6351]: Core: Drop Python 2 support.

  • [#6368]: Core: Add async support to kivy App

  • [#6448]: EventDispatcher: Move __self__ from widget to EventDispatcher and fix tests.

  • [#6467]: Graphics: Change filename to source

  • [#6469]: ModalView: Updating ModalView to improve theming

  • [#6607]: Window: Fix SDL Keycode Typo

  • [#6650]: DropDown/ModalView: Make modal and dropdown consistent

  • [#6677]: Widget: Remove id from Widget.

  • [#6678]: ScrollView: Add always_enable_overscroll property on scrollview

  • [#6721]: Image: Remove gpl gif implementation

  • [#6918]: ColorProperty: Use ColorProperty instead of ListProperty for color property

  • [#6937]: Base: Rename slave to embedded

  • [#6950]: Cache: Raise KeyError if None is used as key in Cache

Kv-lang

  • [#6442]: KV lang: Make it easy to copy Builder and Factory and make them all contexts.

  • [#6548]: Factory: Meaningful Error Message

  • [#6880]: KV: Use utf-8 encoding by default on reading .kv files. Fixes #5154

Misc

  • [#6323]: Loader: User agent was not correctly resolved.

  • [#6658]: Garden: Fixes incorrect path to kivy garden libs on iOS

  • [#6703]: Network: Fix https in python3.x

  • [#6748]: Network: Extend certifi usage to ios

  • [#6922]: WeakMethod: Fx and cleanup WeakMethod usage

  • [#6931]: VIM: Fix and improve vim syntax highlighting for kv lang

  • [#6945]: Cache: Don’t double copy keys when purging cache by timeout

  • [#6950]: Cache: Raise KeyError if None is used as key in Cache

  • [#6954]: Network: Ignore ca_file on http scheme, fixes #6946

  • [#7054]: Networking: User Agent and Cookies added to UrlRequest

Packaging

  • [#6359]: Packaging: Fix path by setting to bytes

  • [#6643]: PyInstaller: List kivy.weakmethod because pyinstaller doesn’t see into cython files

  • [#6772]: PyInstaller: window_info is not included in x86 pyinstaller

  • [#7080]: OSX: Generate Kivy.app on the CI

Widgets

  • [#6288]: TextInput: Cache text property in TextInput

  • [#6362]: Carousel: Let ‘Carousel._curr_slide()’ prepare for the situation where ‘index’ is None

  • [#6365]: Carousel: Let ‘Carousel.remove_widget()’ remove the container of the widget

  • [#6372]: Carousel: make ‘Carousel.remove_widget()’ not cause ‘IndexError’

  • [#6374]: Carousel: Make ‘Carousel’ able to handle the case where ‘loop == True’ and ‘len(slides) == 2’

  • [#6436]: ColorWheel: Remove bug in algorithm to compute arcs of colorwheel (#6435)

  • [#6469]: ModalView: Updating ModalView to improve theming

  • [#6481]: ScreenManager: Make clear_widgets correctly iterate over screens

  • [#6542]: TextInput: Fixes TextInput Bubble from diseappering immediately after it appears

  • [#6543]: TextInput: Fixes TextInput cursor “rendering” issue

  • [#6574]: TreeViewNode: Fix arrow pos and size

  • [#6579]: Slider: Horizontal value track is offset from the center of Slider

  • [#6624]: Filechooser: Use full path

  • [#6650]: DropDown/ModalView: Make modal and dropdown consistent

  • [#6666]: TextInput: Fix for crashes caused by text selection outside of TextInput area

  • [#6678]: ScrollView: Add always_enable_overscroll property on scrollview

  • [#6741]: GridLayout: Add ‘orientation’ property to GridLayout

  • [#6815]: Image: Fixes for Image and AsyncImage

  • [#6859]: Slider: Adding allow_stretch to Slider in style.kv

  • [#6879]: VKeyboard: Fix key_background_color property not used

  • [#6897]: RecycleView: Add behavior to set RV data using kv ids

  • [#6905]: FileChooser: Add font property

  • [#6912]: TextInput: Remove ‘encode’ argument from getter method of ‘text’ property of TextInput

  • [#6918]: ColorProperty: Use ColorProperty instead of ListProperty for color property

  • [#6942]: ScrollView: Don’t crash when scrollview’s content is the same size

  • [#6971]: Camera: Fix an inconsistency between docs and code on Camera

  • [#6976]: ModalView: Prevent modalview dismissal without on_touch_down

  • [#6985]: ScrollView: Fix scrollview scroll/effect recursion

  • [#7009]: TextInput: IME support for textinput

  • [#7021]: ColorProperty: Use ColorProperty for remaining color properites

  • [#7032]: ScreenManager: Fix typo in SlideTransition

  • [#7069]: ScrollView: Horizontal scrolling disabled if no overflow

  • [#7074]: Splitter: Fix handling offset

  • [#7118]: GridLayout : optimize GridLayout

  • [#7129]: TabbedPanel: Stop tab buttons from scrolling around

  • [#7196]: ScrollView: fix jumping to bottom when using scrollwheel.

Core-app

  • [#6351]: Core: Drop Python 2 support.

  • [#6368]: Core: Add async support to kivy App

  • [#6376]: Cython: Set cython language_level to py3.

  • [#6381]: Inspector: Use sets to check if inspector should be activated.

  • [#6404]: App: Fix pausing without app instance

  • [#6458]: Core: Fix memory leaks by cleaning up after resources

  • [#6540]: Config: fix erroneous check of KIVY_NO_ENV_CONFIG

  • [#6581]: Dependencies: Bump max cython version

  • [#6729]: DDSFile: ddsfile.py fix for string/bytes comparing for py3

  • [#6773]: Clock: Add correct value of CLOCK_MONOTONIC for OpenBSD

  • [#6798]: Platform: Corrected platform detection on Android

  • [#6910]: Logger: Add encoding

  • [#6926]: Clock: Add clock lifecycle, better exception handling and other cleanup

  • [#6937]: Base: Rename slave to embedded

  • [#6994]: EventLoop: Don’t do event loop stuff when stopped.

  • [#7083]: Core: Add _version.py and move updating version metadata to the CI

  • [#7112]: Python: Require python version >=3.6

  • [#7132]: Python: Add support for Python 3.9.

  • [#7151]: Dependencies: Bump cython to 0.29.21

  • [#7178]: Dependencies: Add dependency selection varaibles

  • [#7181]: Logging: Added color support for compatible terminals

Core-providers

  • [#6384]: Window: Allow window providers to indicate which gl backends they are compatible with

  • [#6422]: Label: Fixes multiline label w/ line_height < 1

  • [#6433]: Window: Center cache problem on MacOS

  • [#6461]: Audio: Fix playing audio streams from ffpyplayer

  • [#6507]: Text: Revert “Fixes multiline label w/ line_height < 1”

  • [#6513]: Text: Fix issue #6508 Multiline label w/ line_height < 1 renders badly (workaround)

  • [#6515]: Text: Fixes positioning (valign) issue when using max_lines

  • [#6578]: Window: Revert swap forced sync (#4219) as it causes performance issue

  • [#6589]: Window: Add the ability to show statusbar on iOS

  • [#6603]: Audio: Native audio support for Android

  • [#6607]: Window: Fix SDL Keycode Typo

  • [#6608]: Audio: Replace deprecated variables in audio providers

  • [#6721]: Image: Remove gpl gif implementation

  • [#6743]: Clipboard: xclip less verbose Kivy startup

  • [#6754]: Text: Properly raise errors reading a font

  • [#6947]: Image: Remove ‘img_gif’ entry from image_libs

  • [#6988]: Camera: Improve avfoundation camera implementation on iOS

  • [#7071]: Camera: Fixes crash during camera configuration

  • [#7102]: Audio: Added loop functionality for SoundAndroidPlayer

Core-widget

  • [#5926]: Animation: Fix kivy.animation.Sequence and kivy.animation.Parallel consistency

  • [#6373]: Properties: Allow observable list and dict dispatch to propagate exceptions.

  • [#6441]: EventDispatcher: Move Widget proxy_ref upwards to EventDispatcher

  • [#6443]: Property: Initialize KV created property with default value

  • [#6448]: EventDispatcher: Move __self__ from widget to EventDispatcher and fix tests.

  • [#6677]: Widget: Remove id from Widget.

  • [#6858]: Effects: Fix update_velocity

  • [#6917]: ColorProperty: Re-add ColorProperty to __all__ list in properties.pyx module

  • [#6930]: Property: Use ObservableList as internal storage for ColorProperty

  • [#6941]: Property: Let ColorProperty accept arbitrary list types.

  • [#6965]: Property: Allow assignment of color names as values for ColorProperty

  • [#6993]: Property: Add kwargs to ‘sort’ method of ObservableList

Distribution

  • [#6354]: Dependecy: Move cython version info to setup.cfg.

  • [#6355]: Dependency: kivy_deps need to be imported before any modules.

  • [#6356]: Dependency: Bump cython to 0.29.10 to fix CI building.

  • [#6397]: Install: Automatically discover kivy sub-packages

  • [#6562]: RPi: Autodetect when we are on a Raspberry Pi 4

  • [#6568]: CI: Cross compile wheel for armv7l (Raspberry Pi 4) using Github Actions CI

  • [#6642]: Install: Switch to using pyproject.toml and setup.cfg for metadata

  • [#6656]: Wheel: Don’t package examples in the wheel

  • [#6662]: CI: Compile wheels for Raspberry Pi 1-3 using the CI

  • [#6670]: Dependencies: Fix CI PyPI upload and pin to latest kivy_deps versions.

  • [#6674]: Sdist: Cannot handle carriage return in description.

  • [#6769]: RPi: Kivy now works on the Raspberry Pi 4 without X11

  • [#6774]: Install: Build the extensions in parallel if the options has not been set

  • [#6852]: Platform: Fix android platform detection when using p4a

  • [#6854]: Install: Reuse kivy_build var (complements #6852)

  • [#6891]: Cython: Update to latest cython version

  • [#6990]: Installation: Make setuptools use its local distutils

  • [#7084]: Dependencies: Add min basic dependencies to install requirements.

  • [#7110]: Makefile: Detect python verion and gracefully fail on unsupported version

  • [#7152]: RPi: Stop building wheels for RPi stretch

  • [#7154]: Anconda: Respect SDKROOT and use_osx_frameworks

  • [#7157]: Makefile: Try python3 first as python may point to python2.

  • [#7159]: Makefile: Use python3 if it’s present.

  • [#7195]: Inlcude doc in PR checklist

Documentation

  • [#6352]: Docs: force to use sphinx 1.7.9 to restore search

  • [#6377]: Docs: Embed func signatures in cython to help IDEs.

  • [#6383]: Doc: Create FUNDING.yml

  • [#6389]: Doc: Fix linux install docs and update garden instructions

  • [#6398]: Doc: Update clock.py - Corrected typo

  • [#6399]: Doc: Fix pip link

  • [#6427]: Doc: Add comment on required pip version

  • [#6459]: Docs: fix wrong highlights

  • [#6466]: Docs: Config docs update

  • [#6478]: Examples: Fix lack of white-space after “:” in pong.kv

  • [#6479]: Doc: Fix typos, grammar in install instructions

  • [#6485]: Doc: Fix KIVY_EVENTLOOP doc

  • [#6491]: Doc: Fix Widget.pos_hint doc

  • [#6510]: Doc: Few minor fixes in the doc.

  • [#6511]: Doc: Update note about kivy-ios python version

  • [#6523]: Doc: Remove reference to Kivy Designer

  • [#6537]: Doc: fix GridLayout doc

  • [#6558]: Examples: Fixed depreciated option for twisted, and sys.exc_call is only run in py2

  • [#6625]: Doc: Update CONTRIBUTING.md

  • [#6636]: Example: Missing directory replaced in colorpicker #6599

  • [#6638]: Docs: Fix typo

  • [#6641]: Doc: Fix TextInput typos cursor row/col

  • [#6683]: Doc: Fix spinner kv example

  • [#6694]: Doc: Fix css on docs

  • [#6712]: Doc: Revisit of the Windows installation instructions

  • [#6714]: Doc: Fix spelling errors

  • [#6750]: Doc: Update packaging-windows.rst

  • [#6775]: Doc: Fixed the gallery documentation

  • [#6778]: Doc: Updated Raspberry Pi 4 doc on HW acceleration

  • [#6780]: Doc: Make RPi SDL2 install instructions clear

  • [#6813]: Example: bugfix for 3D rendering example

  • [#6821]: Doc: Expand on the current logger docs

  • [#6863]: Doc: Add missing hid input parameter

  • [#6868]: Doc: iOS - migrates to the new install procedure

  • [#6882]: Example: Improved ScreenManager example

  • [#6895]: Doc: Add annotations to proxies.

  • [#6924]: Doc: Buildozer is now in Beta.

  • [#6927]: Doc: Improvements to kv lang docs

  • [#6938]: Doc: trigger_action warning / documentation updates

  • [#6963]: Doc: Correct comments to use proportion, not percent

  • [#6969]: Doc: Fix docs for on_dropfile

  • [#6975]: Doc: Update the dev installation instructions

  • [#6977]: Doc: Add some typing to clock

  • [#6979]: Doc: Remove duplicate python3-pip

  • [#7002]: Doc: Print about KIVY_NO_ARGS when printing usage.

  • [#7022]: Doc: Update doc for all instances of ColorProperty

  • [#7038]: Doc: Fix on_ref_press documentation

  • [#7039]: Doc: fixed typo in hbar doc string

  • [#7043]: Doc: fixed doc string

  • [#7160]: Examples: Add Recycleview examples

  • [#7179]: Docs: Switch to staging docs on kivy-website-docs

  • [#7222]: Docs: minor typo fix in layout docs

  • [#7240]: Docs: Re-write install docs.

  • [#7241]: Docs: Add changelog to docs

Graphics

  • [#6457]: Graphics: Fix “Error in sys.excepthook”

  • [#6467]: Graphics: Change filename to source

  • [#6472]: Graphics: Fix relative import for the egl backend

  • [#6533]: Graphics: Fixes fbo/renderbuffer freeze on iOS

  • [#6702]: Graphics: Adding support for non-file SVGs

  • [#6777]: Graphics: Also set points _mode propery to LINE_MODE_POINTS

  • [#6808]: Graphics: Fix Svg consistency #6467

  • [#6844]: Graphics: Use GLES context when ES2 is forced

  • [#6846]: Graphics: Revert “Use GLES context when ES2 is forced”

  • [#6978]: Graphics: fix ignored alpha value in hsv mode

Input

  • [#6319]: Mouse: Fix ctypes definition to work with other packages

  • [#7065]: Mouse: Added support for the mouse4 and mouse5 buttons

Tests/ci

  • [#6375]: CI: Fix CI failure, 3.5.7 doesn’t have compiled binaries.

  • [#6390]: CI: Python 3.5 doesn’t seem to work anymore on travis bionic.

  • [#6403]: CI: Remove osx workarounds as it breaks the build.

  • [#6415]: Test: Add tests for coordinates translation

  • [#6417]: Test: Add preliminary support for coverage for kv files.

  • [#6482]: CI: Remove usage of KIVY_USE_SETUPTOOLS

  • [#6503]: CI: Fix rtd builds

  • [#6514]: Test: Add test method for touch to follow a widget’s position

  • [#6516]: CI: Don’t use the Window when computing dp during docs generation

  • [#6554]: CI: Build latest .DMG for osx app

  • [#6556]: CI: Update .travis.yml for osx app on master

  • [#6565]: Test: Add ability to specify offset from widget pos

  • [#6570]: CI: Enable Python 3.8 wheel generation for osx

  • [#6595]: Tests: Fix test failures in Python 3.8 (fixes #6594)

  • [#6618]: Test: Don’t preset async_sleep

  • [#6622]: CI: Switch from Travis/Appveyor to GitHub Actions

  • [#6659]: CI: Use pip to build wheel so it uses pyproject.toml.

  • [#6669]: CI: Test generated wheels and sdist

  • [#6673]: CI: Latest twine doesn’t support py3.5

  • [#6681]: CI: Switch to flake8 and fix PEP8 issues

  • [#6682]: CI: Create all the wheels before doing any uploads

  • [#6771]: GitHub: Update issue templates to new format

  • [#6845]: Tests: Fix failing tests

  • [#6855]: CI: Upgrade to actions/checkout@v2 & actions/setup-python@v2

  • [#6892]: Test: Fix failing coverage

  • [#6940]: CI: Fix linux SDL2

  • [#6951]: Tests: Refactors test_urlrequest.py

  • [#7115]: CI: Remove mcnotify integration

  • [#7147]: PEP8: Fix PEP8 issues

  • [#7174]: Tests: Warn that async app test framewrok may be removed from kivy.

  • [#7201]: CI: Test all wheel versions, not just one per OS

  • [#7203]: Tests: Ensure Bubble uses it’s superclass’s valid private API

1.11.1 (June 20, 2019)

This release fixed some issues with the docs, the CI, and Kivy dependencies that was introduced in 1.11.0 (#6357).

1.11.0 (June 1, 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

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

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.

Base

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)

CI

  • [#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

Window

  • [#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

Widgets

Bubble

  • [#6043]: Configure Bubble’s BackgroundImage’s auto scale property

Carousel

  • [#5975]: fix missing touchModeChange renaming to touch_mode_change

  • [#5958]: Fix 5783 carousel looping

  • [#5837]: carousel - update add_widget with ‘canvas’ parameter

Checkbox

  • [#6317]: Fix checkbox state issues.

  • [#6287]: Fix CheckBox Python2 compatibility.

  • [#6273]: Fix “Object no attribute active” (Bug introduced via PR #4898)

Colorpicker

  • [#5961]: ColorPicker refactor to prevent multiples event firing

Filechooser

  • [#6050]: correction of a malfunctioning with ..in Windows platforms (function _generate_file_entries)

  • [#6044]: Limited FileChooserProgress text size to widget size

Modalview

  • [#5781]: Add ‘on_pre_open’ and ‘on_pre_dismiss’ events to ModalView

Pagelayout

  • [#5868]: anim_kwargs in PageLayout

Recycleview

  • [#5963]: Fix 5913 recycle view steals data

Scatter

  • [#5983]: Issue #5773: Ensure to dispatch on_transform_with_touch event when the angle change

Screen

  • [#6347]: add tests for #6338

  • [#6346]: Make switch_to accept already added screens.

  • [#6344]: Revert “[widgets/screen]Fix #3143”

  • [#6279]: Fix #3143

Scrollview

  • [#6294]: [ScrollView] Touch is in wrong coordinates

  • [#6255]: Fix ” object has no attribute ‘startswith’ “

  • [#6252]: Attempt to fix nested scrollviews

  • [#6020]: Add smooth_scroll_end

Tabbedpanel

  • [#6291]: Fix bug in TabbedPanel.remove_widget method

Textinput

  • [#6309]: Fix TextInput shortcuts

  • [#6249]: Fix issues #6226 and #6227 in multiline-enabled TextInput

  • [#6120]: Corrected textinput key input detection to only use on_textinput

  • [#6113]: Made textinput ignore space keydown/keyup for space input

Treeview

  • [#5844]: fix #5815 uncomplete node unselection in treeview

Widget

  • [#5972]: fix widget tests for python2

  • [#5954]: Scale export to png

1.10.1 (July 8, 2018)

Core

  • [#4974]: Video: update ‘loaded’ on new video, unload previous video

  • [#5053]: ffpyplayer video: update frame/position on seek if video paused

  • [#5109]: Add textedit event for text editing by IME

  • [#5187]: Fix Windows clipboard when pasting a file

  • [#5206]: Touchscreen fixes

  • [#5220]: Redeclare Svg.reload as throwing an exception.

  • [#5222]: Fix typo in SVG

  • [#5233]: svg improvements

  • [#5252]: Add support for shaped windows

  • [#5264]: Remove double list copy in Animation._update

  • [#5265]: Remove dead code for SDL2 windowresized event

  • [#5281]: Make App.on_config_change an event

  • [#5298]: Add support for saving flipped Textures

  • [#5305]: img_pygame: Fix loading of binary alpha formats

  • [#5312]: ffpyplayer video: disable builtin subtitles by default

  • [#5313]: ffpyplayer video: better video seek

  • [#5324]: window_sdl2: Fix memory leak in screenshot

  • [#5325]: text_sdl2: Fix very unlikely memory leak

  • [#5328]: Fix build with cython 0.26

  • [#5355]: handle_exception defaults to RAISE, not STOP

  • [#5362]: Raspbian stretch egl library fix

  • [#5377]: Let dpi formatting exceptions in kv propagate out from cython.

  • [#5382]: Fix Json+DictStore not raising error for non-existing folder + unittest

  • [#5387]: _text_sdl2.pyx: Don’t clear pixel memory twice

  • [#5389]: Don t drop SDL_Dropfile event while in pause #5388

  • [#5393]: Forward kwargs to config parser.

  • [#5396]: Actually display multitouch emulation if sim set to True.

  • [#5421]: Fix host/port handling in UrlRequest

  • [#5423]: Add probesysfs option to include devices that offer core pointer functionality

  • [#5435]: Changed Logger.error to Logger.warning on android import

  • [#5437]: Purge KV lang TRACE logs on demand with environment variable

  • [#5459]: audio_sdl2: Update for mixer v2.0.2 support

  • [#5461]: Monkey patch PIL frombytes & tobytes, fixes #5460

  • [#5470]: Added ‘frag_modelview_mat’ uniform to address #180

  • [#5535]: Fix FileNotFoundError when sys path doesn’t exist

  • [#5539]: Window info

  • [#5555]: python3 package of Pillow needs a updated Import

  • [#5556]: Fixed loading fonts with dot in name, fixed spelling in Russisn examle

  • [#5576]: window_x11: implement get_window_info()

  • [#5577]: window_x11: fix python3 TypeError

  • [#5579]: Fix Ctypes Clipboard error with embeded null character

  • [#5593]: Fix float division by zero

  • [#5612]: raise exception when trying to add Widget with a parent to Window

  • [#5621]: do not use the clock in __dealloc__ to prevent deadlock

  • [#5624]: Update LICENSE

  • [#5664]: Fixes renderbuffer leaking when creating Fbo

  • [#5693]: PiCamera-based camera provider for Raspberry Pi

  • [#5703]: Fixed format string mistake in Error Message

  • [#5705]: Check for activation before attaching to window. references #5645

  • [#5716]: Replace vendored lib/OSC and lib/oscAPI with oscpy.

  • [#5778]: Update extensions for ImageLoaderPIL

  • fc2c3824a: Update properties.pxd

  • 5bf0ff056: Properties: Allow custom comparator.

  • cf7b55c1b: change opengl ids to unsigned ints

  • 87897c489: Add on_textedit event to SDL2 Window (#5597)

  • 4d9f19d08: Expose “absolute” options in HIDInputMotionEventProvider class

  • ae3665c32: camera: fix __all__ export

  • 53c2b4d63: picamera: fix for python2. Closes #5698

  • d3d517dd2: Re-add gi camera provider.

  • d175cf82c: Fix Inspector crash if shaped window is disabled

  • 4deb3606d: Add sdl2 system cursors (#5308)

  • f5161a248: Clean hanging code (#5232)

  • b7906e745: Fix py2/py3 iteritems (#5194)

  • 5961169c5: add versionadded tag for KIVY_BCM_DISPMANX_LAYER

  • ebeb6c486: cache.py bug fixes (#5107)

  • b4ab896b0: input: probesysfs: remove getconf dependency

  • 58b9685da: @triggered: add cancel method

  • f8194bb69: Add test units to ClockTestCase

  • dafc07c0e: @triggered: Set default timeout=0

  • 061891ce1: Add decorator for Clock.create_trigger()

  • 1c855eb14: on_joy_ball is called with 2 position valuesc

  • 1a20a3aef: Prioritize XClip for clipboard on Linux

Widgets

  • [#4905]: Removed textinput cursor bug #3237

  • [#5167]: Add support for RST replace

  • [#5200]: Added abs_tol argument to isclose call to ensure no float edge cases

  • [#5212]: fix [#5184]: ScrollView bar_margin affects also touch position

  • [#5218]: Add support for footnotes to RST

  • [#5243]: Fix for crash when setting is_focusable property in issue #5242

  • [#5255]: Fix race condition in AsyncImage

  • [#5260]: Disable emacs bindings for Alt-Gr (Ctrl+Alt) key

  • [#5263]: Avoid Animation.cancel_all(Window) that interfers with user animations

  • [#5268]: Fix crash when instantiating ActionView(use_separator=True)

  • [#5335]: issue #5333 - actionbar throws exception when resized

  • [#5339]: Rewrite ActionGroup from Spinner to Button+DropDown

  • [#5370]: Fix all ScreenManagers sharing the same transition

  • [#5379]: Allow negative values in textinput with filters.

  • [#5413]: Don’t pass touch to children when outside the ScrollView.

  • [#5418]: Add text_validate_unfocus option to TextInput

  • [#5445]: Resize treeview collapse. closes #5426

  • [#5455]: Add TextInput cursor blinking control

  • [#5472]: export widget canvas to png including alpha values

  • [#5484]: DragBehavior: Transform window coordinates to parent coordinates befo…

  • [#5567]: EffectWidget: Correct typo ‘setdefaults’ to ‘setdefault’

  • [#5641]: Fix LabelBase.register() to behave as documented

  • [#5715]: Let Layout.add_widget use the canvas argument

  • [#5748]: Add canvas argument to FloatLayout.add_widget

  • [#5764]: Fix #5761 AsyncImage reload() doesn’t invalidate Loader Cache

  • [#5632]: Fixes #5632, typo of col instead of row.

  • 9a8603d54: hotfix: Stop AccordionItem collapse animation

  • a432e0d73: Let BoxLayout.add_widget use the canvas argument

  • 37ccbfac2: pass an empty list for “buttons” param to create_touch

  • 8da2272e5: Remove ineffective changes

  • 2faa6a993: doc: Added default value to Scatter ‘do_collide_after_children’ property

  • faa03f7e4: Gridlayout min size bounds check (#5278)

  • 27e3b90ea: Fix touch passing down when overlapping TextInputs (#5189)

  • 5e2b71840: Fix image size and comment handling in RST (#5197)

  • b505b1d13: Add on_load to AsyncImage (#5195)

  • 873427dbb: Add Slider.sensitivity (#5145)

  • d06ea4da2: Deprecate the Widget’s id property

Tests

  • [#5226]: Add test for ScrollView bars

  • [#5282]: Add test for _init_rows_cols_sizes

  • [#5346]: Add unittest for ActionBar

  • [#5368]: Unittesting features

  • [#5372]: test_video.py: Fix misleading class name

  • [#5374]: Fix creating ‘results’ folder in GraphicUnitTest if not making screenshots

  • [#5378]: Add test for Inspector module, fix children order for ModalView

  • [#5381]: Add test for KV event/property + trailing space

  • [#5399]: Add unittest for Mouse multitouch simulator

  • [#5433]: Add simple guide for GraphicUnitTest

  • [#5446]: Add unittest for AsyncImage + remote .zip sequence

  • [#5489]: Add unittest for TextInput selection overwrite

  • [#5607]: Add unittest for Vector.segment_intersection floatingpoint error

  • 6b93d8aa4: Fix unicode error

  • c9ecb4017: Add test for RST replace

Docs

  • [#5170]: Fix typo in installation/windows.rst

  • [#5177]: Fix comments for paste in textinput.py

  • [#5221]: Docs: Link methods, remove empty title

  • [#5227]: Add gstreamer to ubuntu install

  • [#5240]: Settings in example are faulty

  • [#5270]: doc: add missing escape characters into Linux installation instructions

  • [#5307]: Docs: Explain handling Popup in KV

  • [#5330]: Docs: Rewrite system cursor

  • [#5424]: Add notice about Kivy.app not being available for download

  • [#5439]: OSX Install Instruction Update - Cython explicit version

  • [#5458]: Add docs for setting Window.shape_mode

  • [#5518]: less renaming

  • [#5519]: oxford

  • [#5520]: Documentation consistency

  • [#5521]: redundant ‘as’

  • [#5522]: widget’s

  • [#5523]: terser

  • [#5524]: tighten

  • [#5559]: Docs: Add note about MemoryError for kivy.deps.gstreamer

  • [#5600]: Fixed one letter documentation typo (in example)

  • [#5626]: Fix typo in docs.

  • [#5695]: Docs: Add warning about using Texture before application start

  • 12487a24f: Remove tree; doesn’t look good with website CSS

  • bb07d95e9: Clarify Windows alternate location installation

  • d6d8a2405: Doc: Fix parsed literal block in installation docs

  • 4d4ee413c: Doc: added 18.04 to dev install docs

  • 5f6c66eba: Doc: Fixed typo in animation.py

  • 285162be5: Kivy is available on Macports directly

  • 94d623f91: Doc: changed disabled state docs for widget to more standard form

  • e029bed41: Doc: tweak to uix/spinner.py docs

  • 86b6e19d8: Doc: tweaks to cython version installation instructions

  • ef745c2fe: Doc: remove specifying cython version, list working cython vs. kivy versions. references #5674

  • 0ccd8ccd9: Doc: tweaks to modules/console.py

  • 90448cbfa: Doc: revisions to modules/console.py

  • 73f99351c: Doc: added explanation for Builder.unload filename parameter

  • 67fb972ee: Doc: refinements to actionbar.py

  • 96252c9ad: Doc: refinements to actionbar docs

  • 917a1b4a2: Update installation-osx.rst

  • a3251fd79: Doc: clarified angle offering for python 3.5+

  • 0fbac3bdb: Doc: tweaks to actionbar docs

  • 0ec9530b3: Doc: additions to ActionBar docs

  • 1aa431539: Fix stencil’s documentation

  • 51d172500: Doc: corrected typo in recycleview layout docs

  • 6af68c41f: Doc: Added link to toggle button image

  • e7d171393: Doc: Added togglebutton image to docs

  • 0ea6e95df: Doc: Added 16.04 dependencies listing

  • 0cc3a9812: Update debian installation doc

  • 22aa73f55: Docs: Remove “-dev” version in versionchanged

  • c07f97179: Docs: Fetch cython version from setup.py (#5302)

  • 2ad58a9a0: Doc: cleanup, added doc strign for RecycleLayout to make linkable

  • 493a4a985: Doc: tweaks to the recycleview docs

  • 114c1a026: Doc: Grammer tweaks to /doc/sources/guide/graphics.rst and kivy/core/window/__init__.py

  • 3d243629f: Doc: petty grammar tweaks to kicy/core/window/__init__.py

  • 7cdf9b3fd: Doc: corrected the kkivy/core/window/keyboard_anim_args docs to more accurately reflect defaults

  • c5eb87974: Docs: removed the ‘None’ default value as it is actualy ‘’

  • c090c6370: Doc: corrected path for AliasProperty in RecycleViewBehavior

  • 24647bd9c: Doc: added heirarchical namespacing to treeview items

  • 6f0639a25: Docs: Fix note indentation after code block

  • 7daea785f: Doc: added description of rotation property value for kivy.uix.scatter

  • ac0d28f1f: Reorder osx packaging methods

  • 19d9d9d81: Doc: tweaks to grammar for RoundedRectangle graphics instruction

  • cdee22eaa: Doc: tweaks to grammar for RoundedRectangle graphics instruction

  • c6b2fe309: Fix nightly links.

  • 242beb39a: Update android virtual machine documentation

  • fa1e0b283: Deprecate the vm.

  • bd392abca: Remove vm link.

  • a6ee7605c: Add info about kivy_examples.

  • 97f3096cc: Doc: remove leftover USE_OSX_FRAMEWORKS env var

  • b4ce25698: doc: setting KIVY_OSX_FRAMEWORKS=0 during installation is not needed anymore

  • e5126afce: doc: use latest Cython version for macOS and do not force reinstallation

  • bd98d81bc: docs: remove warning about unavailable wheels on Windows

  • f1b412d9a: Docs: Fix examples PPA command; Cython for v1.10.0

  • 333f15845: Doc: Fix Mesh docstring (#5806)

Examples:

  • [#5026]: Update Twisted Framework Example to Py3

  • [#5173]: Fix shapecollisions example for py2

  • [#5486]: Rotate monkey head smoothly

  • [#5487]: Update codeinput.kv

  • [#5564]: Update basic.rst

  • [#5611]: typo fix in docs example

  • e658c65ce: Fix animation transition around the unit circle in Android compass example

  • 4de0599a8: Update joystick example

Misc:

  • [#4984]: Allow changing kivy dispmanx layer in the Raspberry Pi

  • [#5285]: fix install_twisted_reactor for python3 (_threadedselect is now inclu…

  • [#5350]: tools/kviewer: Fixed it working on python3

  • [#5525]: Switch to manual KV trace purging

  • [#5763]: Add kivy/core/window/window_info.c to .gitignore

  • 98e944277: Updated copyright year in doc index

  • b39c84bc0: pep8 fixes

  • 8143c6be9: Add – to separate Atlas module options

  • d054d5665: Add – to –use-path option in documentation

  • 38ed32f2b: Create CODE_OF_CONDUCT.md

  • fa01246c8: long overdue update to the kv syntax highlight for vim

  • 0c63c698f Fix licensing issues (#5786)

Packaging:

  • [#5366]: Fix ‘git’ not found in setup.py

  • [#5392]: Fix setup.py under python2

  • [#5466]: Introduce no support for Cython 0.27 - 0.27.2

  • [#5584]: Added Python 3.6 to setup.py categories

  • [#5627]: Add setupconfig.py to packagedata

  • [#5747]: Updated minimum cython version

  • 10530bbfc: Added missing comma in package_data list

  • f66f34023: setup: fix error about gl_mock that doesn’t exist anymore

  • d462a70f9: setup: fix cython rebuilding all graphics even if it has been already done. Closes #4849

  • aaca07b20: Fix missing kivy.tools in setup.py (#5230)

CI:

  • [#5229]: Appveyor: switch DO_WHEELS to True

  • [#5406]: Fixes for Cython 0.27

  • d5e0ccc00: comment out failing mingw appveyor builds

  • 71cbd4c40: fixes for osx builders in travis

  • 55200ee1a: workaround to make inspector tests pass without blocking window

  • 002e46f7d: travis.yml: add semi-colon

  • f1693863e: travis.yml: add sudo to easy_install

  • 9f71b38a4: travis.yml: try easy_install pip to fix missing command error

  • bae09d913: travis.yml: Make TRAVIS_OS_NAME detection consistent

  • 94db03ed3: Prevented warnings for repeated loading for travis Inspector test cases

  • 61e05c113: Fix travis build error in inpector.py, line 382

  • cd592c1e8: Fixed Pep8 violations (fix travis build 3676 moans)

  • a736f287a: Remove fixed version of cython from .travis.yml

  • 87ae2145c: Removed outdated line from .travis.yml

  • 30fd00fa8: Restore cython=-=0.26.1 for appveyor builds

  • 5c4b8ed14: Downgrade Cython to 0.26.1 for builds

  • 484b2f788: Upload wheels directly to server (#5175)

  • e2c309416: travis.yml add back missing “;”

  • 2fc9cf521: add back pip installation in osx travis build

  • 7f5d9a4b4: use travis_retry for coveralls, in case it fails randomly

  • e12d21667: fix again osx travis build (pip command not found)

  • 3d41f1da1: Update .travis.yml

  • 642e029a8: Add docutils to Travis deps

  • ce6d54e2f: Add wheel generation support for osx and Linux.

  • 36e029aec: Upload sdist and examples.

  • 2e400aa41: Quote filenames [build wheel]

  • 04bfcff4d: Give better wheel upload path [build wheel win]

  • 8167ff410: Fix wheel building on all platforms (#5812)

1.10.0 (May 7, 2017)

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.

Core

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

Data

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

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

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

1.9.1 (Jan 1, 2016)

Changelog published here.

1.9.0 (Apr 3, 2015)

Core

  • [#2280] When core critically fails to load a lib, print all the exceptions.

  • [#2488] Sdl2 support

  • [#2800] core:core_register_lib: make sure libs are registered in order mentioned…

Audio

  • [#1926] handle URL’s with parameters

  • [#2131] fix bug with sound state in audio_gstplayer.py

  • [#2278] fix socket leak in gstplayer

  • [#2125] gstplayer: fix audio/video volume handling, as setting only once in load() doesnt work after stop().

  • [#3004] audio: Fixed the get_pos method

  • core/audio: accept m4a as input format.

  • core/audio: add pygame m4a for android

  • audio: fix leak in SDL implementation (iOS)

Camera

  • a couple of fixes for camera/avfoundation

Clipboard

  • [#2258] Clipboard: move copy and paste methods from TextInput to core.clipboard implementation.

  • [#2743] os specific clipboard

  • core:clipboard_pygame is able to paste unicode text

  • fix clipboard_pygame.py to encode only for py2

Image

  • [#1963] texture: add icolorfmt parameters to define alternative color format storage.

  • [#2085] add .jpe to the supported extensions for providers that supports jpeg

  • [#2358] Add ffpyplayer provider for image

  • [#2037] PIL: detect and use frame disposal method

  • [#2556] core:img_io add py3 support, img_sdl2 add save support

  • [#2232] convert image data to a bytearray to more consistently get color info

  • [#2170] Fix image unicode issues

  • [#2645] img_pil:check for attribute’s existance before accessing it. closes #2641

  • [#2695] add optional flipped param to pil image save

  • [#2718] uix:Image introduce anim_loop property

  • [#2826] allow In-memory image loading

  • [#2834] fixes zip files not loaded by ImageLoaderPygame

  • [#2836] core:Image:zip_loader start using the new functions for loading from memory

  • [#2403] Update Imageio.pyx with fox for cython.21

  • [#2282] core/imageio: dont advertise to support gif cause we are not able to animate it

  • core/image: remove rowlength slot

  • imageio: accelerate bgra->rgba conversion using Accelerate framework

Text

  • [#1998] use a more natural method to check if self._text is unicode.

  • [#2050] Workaround for pygame font issue with unicode filesnames.

  • [#2166] Use correct options to finish of markup layout

  • [#2259] Fixed issue where anchors not reporting correct position

  • [#2248] [core/text] When stip is False allow space to remain on last line if it fits.

  • [#2225] Use int for texture size, otherwise it’d never equal to the actual texture size.

  • [#2677] fix stripping for wrapped text

  • [#2696] add unicode error handling to core text

  • [#2673] use available system fonts

  • [#2840] Fix text stripping issues

  • [#2891] Change the default font from DroidSans to Roboto

  • [#2897] Update readme, font files and kv as part of moving to Roboto

  • [#3014] core/text: allow others font extension to be loaded

  • core.text: Make sure colorformat is specified while blitting texture.

  • Align text flush with justify.

Video

  • [#1629] Add ffpyplayer provider.

  • [#2125] gstplayer: fix audio/video volume handling, as setting only once in load() doesnt work after stop().

  • [#2275] video: fix video.unload called when position is changing.

  • [#2962] Video fixes

Window

  • [#1904] Exit on escape changes

  • [#2130] Add on_request_close event to window to check before the window is closed

  • [#2148] Add read-only tag to WindowBase width and height properties

  • [#2329] Import glReadPixels from the correct place. Fixes #2032

  • [#2359] add __self__ property to Window

  • [#2384] Wrong ‘F3’ key value.

  • [#2386] respect keyboard height when providing window height in softinput resize mode

  • [#2564] joystick support with sdl2

  • [#2662] Window.screenshot python 3 fix

  • [#2688] Add pause_on_minimize config option

  • [#2689] core: window_pygame fix conflict with command_mode and ctrl+a

  • [#3047] Joystick support on WindowPygame

  • [#3092] Don’t add force to kwargs since it’s not a prop.

  • [#3115] X11: fix CWOverrideRedirect handling

  • [#3147] on_textinput event for handling text input events from IME, and other custom input methods

  • [#2590] Add maximize, minimize, restore, hide and show methods for SDL2 Window

  • [#3200] Add window_state Config option

Base

  • [#2528] allow customizing the location of the Kivy config data

  • [#2873] environment: add an option to prevent parsing command line argument as kivy arguments.

App

  • [#2171] Add root_window property to App class

Animation

  • [#1959] animation: copy the original value to correctly animate list/tuple/dict.

  • [#2739] unbind on_anim1_complete in Sequence

  • [#3100] fix animation with new WeakProxy objects

  • [#2458] animation: fix crash when widget is gone. (also #2561, #2676)

Atlas

  • [#1841] atlas: Avoids the “Too many open files” error in case of a large number of input fil

  • [#3042] Atlas fixes (#2822 and accept glob patterns)

Config

  • [#1937] Add ConfigParserProperty

  • [#1937] Add remove_callback method to ConfigParser

  • [#2122] Config.set can now convert ints to string in Python3

  • [#2030] Add warning about Settings.on_config_change() value type

  • [#2127] Placement of import config critical to opening window size.

  • [#2228] Add largs in config register func.

  • [#2288] add upgrade method to ConfigParser

  • [#2122] config: ensure python3 configparser will always set strings.

  • [#2351] Get the configparse object when obj is created if it exists already.

  • [#2932] Get the configparse object during linking if it exists already.

  • Add ConfigParserProperty and remove_callback method to ConfigParser.

Clock

  • [#2072] Only execute events that have not been removed.

  • [#2310] Make Clock thread safe.

  • [#2315] Use class object for hash instead of the class method

  • [#2330] Use wrap to give correct name to mainthread wrapped func. Fixes #2027.

EventDispatcher

  • [#2069] Add kwargs to dispatch.

  • [#2566] Enable cyclic garbage collection to EventObservers.

  • [#2724] assert that event callbacks are actually callable

  • [#2797] Restore internal EventObservers to use python objects instead of structs.

  • [#2899] Forward args when creating property.

  • event: try to fix events compilation with older cython

  • Make explicit dependance of event and properties pxd files.

  • Propogate exceptions from EventObservers methods.

  • _event only depends on prop.pxd and prop.pyx.

  • Fix use after free when unbinding a currently dispatching function. Also, don;t dispatch callbacks added during a dispatch

Factory

  • [#2052] Warn when factory tries to re-register an existing class with different bases

Gesture

  • [#2058] Add bbox_margin as a property of GestureSurface

Graphics

  • [#1899] Adding enforcement of the wanted graphics system (GL/GLES)

  • [#1876] Fixed UnicodeDecodeError for bad closed-source Intel drivers

  • [#1946] add a RoundedRectangle instruction

  • [#1876] fix shader for intel drivers

  • [#1996] created method flip_horizontal() for kivy.graphics.texture.Texture

  • [#2186] Use memoryviews for blit_buffer

  • [#2352] Fix cython shader ‘python temp coercion’ exception.

  • [#2421] Fix line joints when doing a PI angle

  • [#2430] Add gles_limits env variable.

  • [#1600] texture: enforce the Texture.blit_* colorfmt/bufferfmt to be the same as the texture, if we have GLES_LIMITS activated

  • [#2440] Tesselator

  • [#2414] Add SmoothLine reload_observer. Fixes #2377

  • [#2266] add debug method for recursive updates

  • [#2554] fix line circle angles

  • [#2170] Fix image unicode issues

  • [#2428] Fix bgr conversion memory leak

  • [#2630] fix size issue for 3D models loaded in kivy

  • [#2809] Default gles_limits to whether we’re on desktop.

  • [#2784] Added property name setters in Color __init__

  • [#3030] Matrix: add get method to retrieve the current matrix

  • [#3040] Matrix: add a put method to directly set matrix value

  • [#1600] texture: enforce the Texture.blit_* colorfmt/bufferfmt to be the same as the texture, if we have GLES_LIMITS activated

  • graphics: fixes for cython 0.20.2 (old version) and remove gcc warning.

  • [#2445] shader: correctly ask for the length of the info. Maybe this is why the odoo crash.

  • sdl2/texture: fix compilation for older cython with python3

  • texture: fix invalid color conversion for texture when introduced icolorfmt (need double check with SMAA).

  • [#2857] graphics/context: release shaders the same way we do for others graphics

  • shader: fix for python3

Interactive Launcher

  • [#1847] interactive.py illegally lists instance methods in __slots__

Lang

  • [#1920] Allows comments in kv after a root level decleration

  • [#2094] Fixes to not include comments when binding kv properties.

  • [#2083] create Observable class to allow creating bindable objects for kv

  • [#2235] include inner traceback in BuilderException

  • [#2269] Create BooleanProperty if a bool is given for the kv property.

  • [#2174] Introduces rebind keyword for some properties to enable dynamic rebinding

  • [#2317] Ignore key exceptions when binding kv rules.

  • [#2533] kv binding optimization

  • [#2639] fix unicode and Builder in Python 2

  • [#2908] kvlang: Fix binding issues

  • [#2864] lang: fix_double include. closes #2821

  • [#3012] py3: Python 3 doesn’t have ClassType anymore.

  • [#3068] Improved error when canvas instructions are added after child widgets in kv

  • lang: fixes invalid name (mixed typo between cache_match and match_case)

Loader

  • [#1918] loaders: guess extension from mime type

  • [#1928] Loader: allow override via URL fragment

  • possibility to load image from a buffer, and make the loader GIL-free

Logger

  • [#1660] Logger logs the version of python in use.

  • [#1948] Fix displaying logs on debug level by default

  • [#2169] Make log_dir absolute path checking cross-platform

  • [#2167] Add config callback to change the log file when the config log_dir/log_name change.

Network

  • [#1975] Decode byte string result when using Python 3

Properties

  • [#2141] Made NumericProperty work with unicode strings. References Issue #2078

  • [#2321] add default read-only setter to AliasProperty

  • [#2747] Add force_dispatch option to properties

  • [#2812] prevent dispatch in ReferenceListProperty.setitem if values haven’t changed

  • [#3088] use WeakMethod for property bindings

  • [#3106] raise AttributeError on missing property

Storage

  • [#1938] Added persistence to DictStore using pickle

  • [#2815] fix bad params for async storage

Input

HIDInput

  • [#2638] hidinput: add late import and fix closure error

  • [#3072] Fixed two bugs with incompatibilities with python3 in hidinput.py.

  • [#3109] keyboard management: add missing keys

  • [#3124] keyboard: add alt as modifier

Keyboard

  • [#1917] introduce keyboard_height and softinput_mode property that can be set to ‘’ or pan or

  • [#1930] VKeyboard: add key repeat on long press

  • [#1932] VKeyboard: add extended layouts

  • [#1967] Fix setting exit_on_escape atribute on on_keyboard method

MTDev

  • mtdev: fix a crash when a finger is already on the touchscreen at the application start

  • mtdev: fix a race condition where we received 2 tracking code id for the same slot within the same SYN_REPORT

MotionEvent

  • [#2292] handle weakproxy objects in MotionEvent.grab()

Mouse

  • [#2132] Adds simulated touch as a profile option

  • [#2333] Make multitouch sim enabled by default and add multitouch_on_demand to config to disable it

PostProc

Modules

Inspector

  • [#1897] Make property list draggable by scrollbar too [modules-inspector]

  • [#1949] Make state normal on ‘inspect’ toggle button when inspector is deactivated

  • [#2387] Inspector: handle bad properties/values

  • [#2521] Fix inspector scrollview

  • [#2618] let inspector view the Window object

  • [#2720] fix inspector for touch devices

Recorder

  • [#2344] fix recorder module imports

Behaviors

ButtonBehavior

  • [#2531] ButtonBehavior: enforce minimum down state time

CompoundSelectBehavior

  • [#1957] Adds a CompoundSelection behavior class

  • [#2154] Fixes #2140 Syntax error

  • [#3122] Fixes #3120 Keyboard behavior in select_for_key_down elides over pauses, combining keys

FocusBehavior

  • [#1909] initial focus behavior

  • [#2708] uix:FocusBehavior make sure changing focus for previous and next don’t clash

ToggleButtonBehavior

  • [#2557] uix:ToggleButton Behavior: make it consistent with ButtonBehavior

Widgets

  • [#1887] Added export_to_png method to Widget

  • [#2452] Fix for stencil not being applied when using export_to_png()

  • [#3098] add WeakProxy with comparison

  • update add_widget exception message

ActionBar

  • [#1839] fix android crash in ActionBar

  • [#3107] make icons scale properly in actionbar

AnchorLayout

  • [#1981] Add padding between layout and children

  • [#2483] anchorlayout: fix positioning and remove size change when the children is bigger than the layout itself

  • uix:AnchorLayout improve do_layout to account for changes in padding.

BoxLayout

  • [#2588] BoxLayout honour padding when using pos_hint

Bubble

  • [#2318] Bubble, makes arrow use soft pixels instead of hard ones, for device independant result

  • [#2536] uix:bubble: don’t assign to window when using limit_to

Carousel

  • [#2542] Fix carousel crash on load_next if empty, replace float(nan) with None

  • [#3067] Fixed carousel calculation that had switched w, h

CheckBox

  • [#2336] Use ToggleButtonBehavior

  • [#2424] Always change the CheckBox state on press

  • [#2484] uix:checkbox introduce allow_no_selection property

  • [#2880] Add background properties for checkbox

CodeInput

  • [#2316] Use proper cid in codeinput cache.

  • [#2874] add an easier way to use different pygments styles for the CodeInput widget.

Dropdown

  • [#2429] Ensure that container is set before everything for dropdown. Fixes issue with dynamic declared dropbox in kv.

  • [#2429] Ensure that container is set before everything for dropdown.

  • [#2126] uix:DropDown check for collision with the widgets dropdown is attached to while dismissing.

EffectWidget

  • [#2095] Added AdvancedEffectBase

  • [#2095] Added source property to EffectBase

  • [#2095] Add new EffectWidget uix module

FileChooser

  • [#2106] Fix problem with list(bool) in filechooser.py

  • [#2338] Catch None in filechooser when iterating files.

  • [#2366] uix:FileChooser fix multiselect behavior consistent, honor dirselect.

  • [#2523] FileChooserIconView: scroll to top when entries cleared

  • [#2525] add multi-view file chooser

  • [#3060] Fixed filechooser path incorrectly updated when going to parent directory

  • uix:FileChooser make use of abspath to store current path.

Image

  • [#2286] uix:Image delayed importing of loader. Import it only when used

Label

  • [#1878] Label: Shorten the string only if it’s larger than texture size.

  • [#1935] Improve text rendering algorithm, fully implement padding, implement justify everywhere

  • [#1907] Correct label padding to be positive, not negative.

  • [#1944] Fix shorten to work the old way for now with the update text algo

  • [#2175] Shorten fixes

  • [#2251] Clear refs and anchors when clearing text. Fixes #2250.

  • [#2238] Keep the markup color attribute after creation. Fixes #2210.

ListView

  • [#1973] dictadapter update sorted_keys when data is updated

  • [#2090] Allow VariableListProperty to accept any list derivative

  • [#2091] Use dp for filechooserlistview instead of sp

  • [#2420] Changed ListAdapter cls to accept string

  • [#2598] fix ListItem* repr for python 2

  • [#2782] bind listview adapter triggers on adapter change

  • [#1972] dictadapter: fix unit tests related to it.

PageLayout

  • [#1871] fix pagelayout assumes fullscreen for swipe threshold calculation

  • [#3007] Fix PageLayout indexing issues.

Popup

  • [#2825] allow horizontal align for popup title

  • [#3104] Don’t create a prop named popup in content. Fixes #3103.

RelativeLayout

  • [#2444] Old kv rules for Relative Layout removed

RstDocument

  • [#1989] Allow reloading rst files and allow source to be ‘’

  • [#2162] make rst underline color configurable

  • Allow setting source to empty string to clear text, if it wasnt empty before.

Scatter

  • [#2206] Add on_bring_to_front event to Scatter

  • [#2714] fixes Scatter crash on windows

ScatterPlaneLayout

  • [#2682] widgets: add new ScatterPlaneLayout,

ScreenManager

  • [#1943] Add attribute to change fbo transparency in FadeTransition

  • [#1985] moved remove_screen(self.screen_out) to _on_complete

  • [#2005] Swap docstrings in screenmanager.py

  • [#2804] provide better exception message when Screen is added to its current manager

  • [#2946] screenmanager: swap up/down SlideTransition

  • [#2749] prevent flicker when using shader transitions

  • [#3080] screenmanager: screen’s layout is fixed before on_enter is dispatched.

  • fix initial screen position in screenmanager

ScrollView

  • [#1866] Fix scrolling on empty scrollview.

  • [#2296] Add bar_inactive_color property for ScrollView

  • [#2328] When mouse scrolling, don’t pass it on to children. Fixes #2031.

  • [#2362] update _scroll_x_mouse and _scroll_y_mouse to fix scrollview jumping

  • [#2371] fix nested scrollviews

  • [#2526] Fix scrollbar scroll touches

  • [#2522] fix horizontal scrolling with mouse wheel/touchpad

  • [#3089] Fix scrollview crash on multitouch events

  • [#3131] fix ScrollView._apply_transform

  • increase scrollbar width

Settings

  • [#2036] Automatically focus SettingString textinput when popup opens

  • [#2074] Made settings popup sizes dynamic and sensible

Slider

  • [#2769] Minor fix in slider.py. slider.value now set to slider.min at init

  • [#3021] change slider default padding to sp(16) to match sp(32) size of slider cursor.

Splitter

  • [#2000] Splitter: Added rescale_with_parent property

  • [#2000] Added splitter options to keep within parent bounds and to rescale with the parent

  • fix rescale_with_parent property name in docstring

StackLayout

  • [#2653] Fix stacklayout size hint

  • [#2803] properly handle StackLayout size_hint and spacing

TextInput

  • [#2332] Fix TextInput bubble not following cursor position on window resize.

  • [#1954] TextInput space stripping fixed, should now account correctly for kerning in cursor positioning

  • [#1913] use a blank 1x1 texture for empty line

  • [#1954] Fix textinput space stripping

  • [#1969] Fix TextInput padding_x being ignored when calculating cursor position

  • [#1997] Add cursor_color property for TextInput

  • [#2008] Selection handles

  • [#2055] Introduce input_filter to TextInput to allow only e.g. int, float inputs

  • [#2267] minimum_height depends on line_height

  • [#2302] Prevent cache clash for textinput width between password = True/False.

  • [#2349] ensure _win is set when updating graphics

  • [#2369] Fixed textinput height calculation based on padding

  • [#2331] Keep correct cursor pos when resizing. Fixes #2018.

  • [#2357] uix:TextInput move checking for command modes out of insert_text

  • [#2283] correctly calculate texture coordinates when erasing at the end of a long line, fixes #508

  • [#2389] fix textinput scroll direction

  • [#2390] make textinput play nice in scatter and scrollview

  • [#2332] uix:TextInput fix bubble positioning.

  • [#2612] Update textinput.py to improve pg_move speed

  • [#3063] move TextInput handles/bubble to window with transformation

  • uix:TextInput use int not round, pageup/down was still crashing

TreeView

  • [#1901] properly unset the selected_node attribute for TreeView

VideoPlayer

  • [#1890] Fix VideoPlayer state inaccurate after end of stream

  • [#1879] Fixes problems with seeking and length for the gst audio player

  • [#1893] Fix VideoPlayer not responding to source change

  • [#2275] Fix issue where a frame might load after video.unload() is called

  • [#2866] image_overlay_play and image_loading attributes of VideoPlayer fixed

Platforms

Android

  • [#1869] Changing Sound.volume should now have an effect on Android

  • [#1947] core:Clipboard ensure clipboard works on older android versions.

  • [#2471] skip processing some about touch when not touching screen on android

  • [#3119] Fixes crash using latest pyjnius

  • [#2710] fix android and ios rotation

iOS

  • [#2754] Fixes typo in system font directory path on iOS

  • [#2413] ios/simulator: fix color inconsistency for text rendering

  • [#2710] fix android and ios rotation

  • [#1792] ios: fix initial window display / sizing issue / redisplay issue.

Linux

  • [#1830] X11 compilation improvements

OSX

  • [#2010] Added save flipped image implementation on MacOS

Raspberry Pi

  • [#2382] Simple keyboard implementation for raspberry pi.

  • [#2581] Solving issues #2373 and #2364 on rpi running archlinux

  • [#2656] support rpi touchscreen

  • [#1302] rpi: add stencil support when creating the egl context.

Libs

GSTPlayer

  • [#2200] fix for #2129 automatic pause in gstplayer after a few frames

  • [#2466] Made local variable reference to fix cython 0.21

  • [#2722] gstplayer: fix invalid size passed when we have a row stride (width * 3 not a multiple of 4).

  • [#2454] gstplayer: fix deadlock when changing the volume on linux / pulseaudio.

libtess2

  • [#2440] added libtess2

  • backport a libtess2 fixes found in others forks to prevent a infinite loop (not all of them :()

OSC

  • [#2314] OscAPI: Changed error check on dispatch, to avoid hidding program errors as well as osc errors

  • [#2806] various cleanup in osc.py

  • [#3114] osc convert data to bytes before packing

  • [#3149] Osc fixes

Tools

  • [#2621] Pep8 checker fix

  • [#2960] Add new checks to kivy/tools/pep8.py

  • [#3116] report.py sends report to https://gist.github.com/

  • Add a tool to generate all the icons version your application needs, Google Play, App Store, Amazon Store, and for all devices (mdpi->xxxhdpi, iPhone/iPad/iTunes).

  • texturecompress: use a POT size of PVRTC (same for width/height), otherwise the OSX texturecompress will fail.

  • icons: fix icon generation for iPadx2

Compatibility

Twisted

  • [#1805] better twisted integration

  • [#1805] Multiple cycles of install/uninstall of Twisted Reactor

Sublime Text

  • [#2033] Fix Syntax Highlighting for Sublime Text

Emacs

  • [#2207] emacs integration: Disable indent-tabs-mode in kivy-mode.el.

Examples

  • [#1987] Python3 and pep8 fixes for 3d rendering example

  • [#2007] Correct config example

  • [#2020] Fix shadertree example for python3

  • [#2066] make touchtracer use pressure if available

  • [#2058] $N-Protractor multistroke recognizer and demo app

  • [#2376] Added texture example, showcasing wrap and tex_coord manipulation

  • [#2360] fix android/takepicture for samsung galaxy S4

  • [#2742] Create app_suite demo

  • [#2704] change video example so it works when tried on an android phone

  • [#2813] Kivycatalog fix: prevent extra spinner events

  • [#2814] handle invalid font paths in CodeInput example

  • [#2886] Added miscellaneous examples folder and a first entry

  • [#2924] KivyCatalog LabelContainer demo update, clearer labels

  • [#2944] Fix escape exiting on unfocus in kivycatalog

  • [#2956] Add documentation to examples/animation/animate.py

  • [#2955] Add description to examples/3Drendering/main.py

  • [#2957] Add documentation to examples/camera/main.py

  • [#2963] Documentation for examples/canvas/bezier.py

  • [#2964] Updated examples/audio/main.py docstring

  • [#2965] Update examples/canvas/canvas_stress.py with docs and new button

  • [#2966] Add examples/canvas/circle.py docstring

  • [#2967] examples/canvas/clearbuffers.py changes and rename.

  • [#2969] examples/canvas/lines.py Add docstring.

  • [#2971] Added examples/canvas/lines_extended.py docstring

  • [#2972] Add documentation to examples/canvas/mesh.py

  • [#2976] Fix examples/ PEP8 errors. Mostly white space

  • [#2979] examples/canvas/multitexture.py documentation

  • [#2981] examples/canvas/rotation.py Added docstring

  • [#2982] examples/canvas/tesselate.py: Add docstring, logging, update display.

  • [#2973] Create and document examples/canvas/mesh_manipulation.py

  • [#3008] py3 division fix in mesh example

  • [#3125] multitexture example: Original texture is displayed along with combined texture

  • [#1869] example: add slider volume for audio examples

  • fix audio example

  • shadereditor: allow to use another image in command line

Unit Tests

  • [#2422] fix test_keep_data so that it looks up the texture

  • [#2862] Updated test of kivy.utils to 100% (platform detection)

  • [#2950] Update testing and documentation of utils.py

  • [#2953] Get kivy/tests/test_graphics.py to clean up results.png

  • tests: add the possibility to run tests without internet (use NONETWORK=1 make test)

  • python 3 tests fixes (Fix filechooser unicode test, vector test)

  • fix benchmarks, update benchmark.py

  • Audio tests were failing on OSX/Windows

Packaging

  • [#2855] add .pxd and .pxi files to package

  • [#2867] Use the correct build path when generating files in setup.py

  • [#2883] Print warning when executed shell command does not return code 0

  • [#2888] avoid make distclean to error when git is missing

  • [#2914] show warning/error for cython versions

  • [#2911] packaging: Fix licensing and extras

  • [#2959] Simplify pip install (resolves kivy/kivy#2958)

  • [#3015] fixes #3011 some files always rebuilt at make

  • [#3041] Use distutils for cython version comparision.

  • [#2934] Add both src and build paths to setup.py for generating setupconfig and co.

  • [#3101] handle LooseVersion == str comparisons in py3

  • Fixes for Cython 0.21

  • setup: fix python3

  • py3 compatibility fix for osx packaging

  • setup.py: changes to not force SDL2 or GStreamer if they are explicitly disabled + reduce the code that generates configuration.

  • [#2879] setup: fixes issues with gstreamer autodetection / compilation.

  • osx packaging fixes

  • Don’t remove debian subdirectory if it exists on git cleanup.

  • [#2299] [#2324] conflict with debian repository

Miscellaneous

  • [#2760] Style Guide/Pep8 fixes

  • [#2961] Fix spacing and long lines. ‘make style’ is now clean.

  • [#2975] Modify Makefile’s ‘make style’ to check entire tree

  • python 3 fixes (unich/chr), throughout codebase

Doc

  • [#2679] doc: add a Common Pitfalls section to RelativeLayout

  • [#2751] Doc fix to clarify kv property behaviour (fixes #2374)

  • [#2763] doc: corrected and improved size_hint doc

  • [#2785] doc: Clarified button background_color

  • [#2764] remove old doc about fixed fmt, short explanations of fmt param

  • [#2787] doc: colour -> color fixes

  • [#2824] Removed experimental tag from pause mode, screenmanager

  • [#2893] fix default font_size value in docstring

  • [#2909] doc: Added clarification to Color docstring

  • [#2919] rebuild cython code to build up to date doc

  • [#2922] Close Issue #2921 - build doc failure

  • [#2950] Update testing and documentation of utils.py

  • [#2927] Fix the default of border property (in PageLayout) in the documentation

  • [#3022] Create gallery of examples.

  • [#3043] Document combining behavior with other widgets. Fixes #2995.

  • [#3082] doc: Add links to source, Circle and Rectangle in the pong tutorial

  • [#3031] document automatic dependencies some more.

  • make doc autobuild.py work under python 3

  • Added scroll effect info to scrollview doc

  • added explanation for AsyncImage

  • added background example to uix.widget

  • revisions to uix/relativelayout.py

  • fixed typos in uix/widget.py

  • add argument for code-block

  • Document TextInput filtering.

  • Rst fixes

  • pagelayout: fix documentation

  • Added custom keyboard example

  • Improved coverage of dynamic classes

  • added warning for ordering of dynamic classes

  • Minor improvements to stencil_instructions

  • Added appropriate documentaion for eos

  • Updated garden to explain kivy-garden module

  • revisions to graphics/vertex_instructions.pyx

  • Add more details in stacklayout doc

  • add instructions for Raspberry Pi

  • update gettingstarted image to add raspberry pi

  • grammar correction in uix/widget.py

  • changed to standard version tagging

  • restored python highlighting to remove red error surrounds

  • layout/tag fixes to uix/gridlayout.py

  • corrected versionchanged spacing + small grammar corrections

  • Make the doc makefile work on windows.

  • update settings documentation

  • revisions to sources/guide/lang.rst

  • autobuild: Return an empty string for missing summary lines. Can’t compare None to string

  • replace template documentation in guide by dynamic class one

  • made function names more obvious in kivy/_event.pyx

  • Replaced jquery-ui.min.js with uniminified versions.

  • Document fixes to label padding.

  • Document that widgets created before load_file was called doesn’t have styling.

  • Document line_height vs minimum_height of TextInput

  • added event bubbling explanation to the widget class

  • examples: add a camera example (easy for testing the camera widget)

  • added observation for on_touch_move and on_touch_up events

  • fixed code example for the storage module

  • Fixed a typo in the firstwidget.rst tutorial.

  • fixed typo in kivy.storage example

  • uix:Image improve FullImage Example

  • corrected canvas descriptions and link

  • added warning note, to help others not to waste 2 hours on a pygame bug on OSX

  • Mention <app_name> folder creation in user_data_dir docs

  • Added matrix docs

  • Add note about twisted on iOS

  • Add Contribution section to readme

  • Fix label ref example

  • Update supported python version.

  • Add note about fully qualified path for iOS packaging

  • Add dt description on Clock docs

  • Clarify Config.set corner case

  • add notes on packaging re py2/py3

  • Links for Twisted echo server examples were broken, fixed the links

  • Changing the sample json url

  • fix obstrusive versionadded

  • Adding instructions how to install Pygame for python3

  • Add note about mouse_pos to motion event

  • example: add slider volume for audio examples. #1869

  • corrected inaccuracies in uix/widget.py

  • added link to selection_mode in adapter/listadapter.py

  • revisions to adapters/models.py

  • more concise introduction for uix/listview.py

  • simplified example in uix/listview.py

  • fixed example, made more minimal

  • revisions to uix/listview.py

  • removed extraneous code from example in uix/listview.py

  • grammar tweaks to uix/listview.py

  • tweaks to uix/listview.py

  • linked property names to property docs for uix/listview.py

  • fixed args_converter link in uix/listview.py

  • added links to uix/listview.py docs

  • Fix EventDispatcher docs.

  • added link, clarified cls/ctx in uix/listview.py

  • tweaked example, removed repeated explanations in uix/listview.py

  • stripped out invalid referral, inessential detail, added link to uix/listview.py

  • stripped out repetition, more concise wording to uix/listview.py

  • corrected imports in example in uix/listview.py

  • tweaks to uix/listview.py

  • added note on intializing selection for the ListAdapter

  • corrected explanation for multiple selection

  • pep8 in example in uix/listview.py

  • property name in docstring

  • typo fix in splitter.py

  • doc autobuild.py work under python 3

  • fixed list numbering, clarified wording in lang.py

  • changed examples redefining Widget in lang.py

  • eloborated on ids in lang.py

  • added dot sytax for ids to lang.py

  • escaped backslash, spelling corrections to lang.py

  • added proper escaping to example in graphics/texture.py

  • added warning about animation the same property to animation.py

  • removed redundant space in animation.py

  • doc syntax error for relativelayout

  • rt “fix doc syntax error for relativelayout”

  • moved addition note to the corresponding property

  • Fixed defaultvalue name in docstrings

  • tweaks to uix/pagelayout.py

  • fixed formatting in graphics/vertex_instructions.pyx

  • docs to use focused vs focus. Fixes #2725.

  • refinements to uix/__init__.py

  • clarified bahaviors in uix/__init__.py

  • grammar tweaks to README.md

  • tweaks to CONTRIBUTING.md

  • revisions to CONTRIBUTING.md

  • fixed unmatched string literal in core/text/__init__py

  • added missing layouts to uix/__init__.py

  • added missing comma to uix/__init__.py

  • specify icon spec for various OS

  • added PageLayout to ‘getting started’ guide

  • added ScatterLayout to ‘getting started’ guide

  • integrated layout links into descriptions

  • added links, gramma improvements to kivy/weakmethod.py

  • revisions to vector.py

  • added module description

  • grammar tweaks to utils.py

  • explanded on utils docs, simplified platform

  • explained preference for ObjectProperty

1.8.0 (Jan 30, 2014)

  • Python 3.3 compatibility

Core

  • [#1631] Extend core_select_lib to be used for other libs other than just kivy.core

  • [#1678] Gracefully exit if no core provider is found

  • [#1740] Dynamically lookup the class when a string is set for various widget with _cls properties

Audio

  • [#1196] Fix sound looping issues

  • [#1209] Fix audio issues on iOS

  • [#1311, #1269] Fix volume property

  • New GstPlayer backend

Camera

  • [#1369, #1053, #65] New avfoundation Camera provider for Mac OSX

Clipboard

  • Introduce native clipboard provider for Android

  • Add only the correct provider depending on the platform

Image

  • [#1696] Improve reload of images on context reload

  • [#1809] Use resource_find to load images

  • Image/texture: add flipped parameter for save method

Text

  • [#1186] Various fixes for managing proper GL reload on GL context change

  • [#1274] Fix unicode handling in shorten routine

  • [#1334] Make shorten work with single words

  • [#1376] Label: add max_lines to limit the number of lines rendered in a label

  • [#796] Pygame provider: Try to use ftfont before font

  • Fix for handling unicode font names

Video

  • [#1490] Fix detection or uri

  • Introduce GstPlayer backend replacing pygst and pygi

  • Make sure video stop and play works on Windows

Window

  • [#1253] Change default clearcolor to (0, 0, 0, 1)

  • [#1408] Avoid multiple binding to keyboard

  • [#1455, #1711] Improve screenshot method

  • [#1667] Fix bad-looking icon on Windows 7

  • [#1830] X11 window provider improvements. Introduction of KIVY_WINDOW_ABOVE and NETWM_PID

  • Fix handling of escape key

Base

App

  • [#1233] Fix title change not reflecting on ui after build

  • [#1546] Raise a default exception when app.root is not of type Widget

  • Adds new methods to display/configure Settings panel

  • New properties for configuring Kv file search

  • Changed to consistently use Properties for configuration

Animation

  • [#1547, #1682] Avoid duration=0 animations from crashing the app

  • Fix leak caused by cancel() not releasing widget reference

Atlas

  • [#1285] Allow generation of an atlas with path info in the ids from the command line

  • Update command line to allow padding and size specification with “WIDTHxHEIGHT”

Config

  • Various fixes for default values on Windows and Linux.

  • [#1084] Fix for allowing unicode string / path in Settings

  • [#1537] Add option to not exit app on escape

Clock

  • New properties for tracking frame time

  • Introduce @mainthread decorator for working with threads

  • Allow clock events to be canceled, utilizing cancel method

EventDispatcher

  • [#1315] Make sure disabling multi-touch emulation works

  • [#1335] Fix touch ring persistence when using multiple virtual keyboards

  • [#1338] Reverse the order of dispatching event stack

  • Introduce events and get_property observers() method that returns a dict of properties/events and a list of methods that are bound to them

Factory

  • [#1223] Allow unregistering of widgets

  • [#1726, #1729, #1277] Raise appropriate error when trying to access a non-existent class

Gesture

  • [#1790] Use BytesIO for internal encoding/compression instead of StringIO

Graphics

  • [#1199] Fix Python Bindings

  • [#1337] Allow graphics instructions to be animated

  • [#1345] Allow 3D picking

  • [#1393] Texture fix repeating texture loss while GL context reload

  • [#1422] FBO use memoryview instead of buffer

  • [#1488] Added VBO support for glDrawElements and glVertexAttribute

  • [#1529] Ellipse - Faster algorithm when drawing circle

  • [#1551] Introduce segment_intersection

  • [#1671] Support member for origin in rotate constructor

  • [#1723] Use ctypes to display a dialog on win32 instead of win32ui

  • [#955] Correctly deallocate shader sources

  • Force npot texture allocation with GPUs that only support npot

  • Shaders: Fix loss of precision that breaks rendering

  • Shaders: Support array

Lang

  • [#1028, #1734, #302] Allow app.kv_directory to work

  • [#1234] Use resource_find to find the filename

  • [#1388] Fix various memory leaks

  • [#1519] Instead of creating an ObjectProperty for every new property declared in Kv lang, detect it’s type and instantiate relevant Numeric/String/List/DictProperty

  • [#991] Add warning if Kv file is loaded multiple times

  • Allow _ to be checked as if it was a key.value property

Logger

  • [#1721] Python3 compatibility fixes

  • [#825] Ensure arguments to the logger are strings

  • Force logging.root to use Kivy Logger instance. Fixes infinite loop

Network

  • [#1248] Introduce decode property. Makes decoding optional

  • [#1316, #1224, #1221, #1286] UrlRequest: various improvements

  • [#1457] Make sure parameters aren’t removed

  • [#1719] OSC: Fix usage for client

  • Introduce file_path argument

Properties

  • [#1243] Make BoundedNumeric Property more accurate

  • [#1389] Allow individual elements of ReferenceListProperty to be changed

  • [#1468] Stop DictProperty from deleting key if value is None

  • Introduce VariableListProperty

  • Properly return result in ObservableDict.setdefault

Input

  • [#1119] Fix touch offset on various touch screen hardware

  • [#1489] New input provider for Leap Motion

  • Add support for tuio/2dblb(CCV 15)

  • Introduce MotionEvent.`last__motion_event`

PostProc

  • [#1204] Fix double tap and triple tap detection

  • [#1348] Fix double and triple tap detection on Windows

Modules

  • [#1668] Add late configuration if module has been added manually before the window creation

Inspector

  • [#1549, #1684] Fix inspection of elements in popup. by looking at ModalView before other elements

  • [#1361, #1365] Allow position of inspector to be adjustable

Recorder

  • [#1800] Introduce F6 shortcut to play last record in a loop

Screen

  • [#1448] Add support for scale

  • [#1687, #1686] Fix all resolutions to be landscape

  • Remove 25dp from height to simulate the Android systemui bar

WebDebugger

  • [#1819] WebDebugger: Display instant value of each box

Widgets

  • [#1238] PageLayout: A simple multi-page layout allowing flipping through pages using borders

  • [#1264] ActionBar: Mimics Android’s own ActionBar appearance and mechanisms

  • [#1471] Behaviors: ButtonBehavior, ToggleButtonBehavior ,DragBehavior

  • SandBox (experimental): Runs itself and its children in an exception-catching sandbox

Accordion

  • [#1249] Stop empty accordion from accessing it’s first child

  • [#1340] Fix select method

Bubble

  • [#1273] Honor arrow_pos when passed as a arg in constructor.

  • Introduce`show_arrow` property

Button

  • [#1212] Introduce trigger_action() for triggering the button programmatically

Carousel

  • Introduce load_slide method to animate the provided slide in/out

  • Introduce anim_type property to be able to choose the type of animation

CheckBox

  • [#1695] Fix active state in group

CodeInput

  • Minor rendering fixes

  • Use MonoSpace font by default

Dropdown

  • Delay container binding, allow it to be used in Kv

  • [#1450] Introduce on_dismiss event

  • Pressing escape when dropdown is active now dismisses the dropdown

  • Make auto-dismiss of dropdown optional. Introduces auto_dismiss property

FileChooser

  • [#1476] Fix inability to browse up to the root path

  • [#1758] Prevent infinite loop

  • [#1780] Fix incorrect selections caused by touch offset

  • [#1818, #1829] Fix unicode issues. Now, path defaults to a unicode string

  • Abstracted filesystem access

  • If a path is expected to contain non unicode-decodable characters, a bytes path string should be used. Otherwise, unicode paths are preferred

Image

  • [#1561] Don’t crash if an invalid image is loaded

ListView

  • [#1303, #1304] Set ListItemButton background_color

  • [#1396, #1397] Accepts objects inheriting from list or tuple in SimpleListAdaptor

  • [#1788] Fix None, int comparison

Popup

  • Introduce title_color property

Progressbar

  • Avoid dev/zero when max is zero

RstDoc

  • Introduce background_color property

Scatter

  • [#1459] Minor fixes for scaling

  • [#1797] Fix div by 0 issue where touch itself was chosen as anchor

  • [#947] Fix scale being dispatched again due to error in floating point calculation

  • Various fixes for transformation

ScreenManager

  • [#1750] Add NoTransition transition

  • [#573, #1045] Introduce switch_to method fixes for

  • Fix Shader-based transitions, allowing them to work in non-fullscreen mode

  • New Screen transitions, mimicking Android

  • Reduce default transition duration and set default transition to SlideTransition

  • Set clear color to be transparent

ScrollView

  • [#1387] Show scrollbars only when viewport is scrollable

  • [#1463] Refactor kinect constants

  • [#1478, #1567] Introduce bars scrolling for desktop type behavior

  • [#1604] Fix overscroll on low FPS

  • Accelerated scrolling by default using Matrix instead of moving the child

  • Introduce bar_pos, bar_side_x and bar_side_y properties allowing the user to control where the the bars are displayed

  • Introduce scroll_wheel_distance property

Slider, Spinner

  • DPI fixes making the widget aware of screen metrics

Splitter

  • [#1655, #1658] Make double tap on border alternate between max/min size

  • [#1656, #1672, #1673, #1810, #1812] Miscellaneous fixes

  • [#1657] Don’t allow negative sizes

  • Make sure splitter remains between min/max_size when these properties are changing

Settings

  • [#1228] Fix for allowing unicode path

  • [#1556] Made SettingsString textinput scale independent

  • [#1590] Prevent import of SettingsWithSpinner when custom class is used

  • Fixes for SettingsPanel that allows it to adjust to mobile screens

  • Fix handling of numeric input

  • Made various behaviors (settings popups, fonts) more scale independent

  • Make the default tab active in SettingsWithTabbedPanel

  • Now includes different Settings widgets, suitable for different devices

StackLayout

  • [#1390] Simply do_layout

TabbedPanel

  • [#1402] Introduce strip_image and strip_border properties to allow skinning the TabbedPanelStrip

  • [#1799] Honor index while inserting TabbedPanelHeader

  • Fix bug when selected tab is removed before switching to it

TextInput

  • [#1496] Introduce allow_copy, to allow the user to choose whether Textinput allows copy or not

  • [#1632, #1717] Fixes for selection offset issues

  • [#1639, #1500] Make sure cursor remains inside TextInput

  • [#1647] Introduction of Handles for selection on mobile enabled by `use_handles`property

  • [#1697] Introduce Keyboard_mode to allow custom management of keyboard

  • [#1702] copy, cut, paste methods to allow the user to manage clipboard operations

  • [#1774] Fixes for voice input

  • Introduce line_spacing

  • Introduce minimum_height property to be used in conjunction with scrollview

  • Introduction of input_type property that is used to specify the kind of IME to request from the OS

  • Introduction of keyboard_suggestion allowing native keyboards on Android to show word suggestions

  • Various fixes for cut/copy/paste

  • Various Unicode fixes. Textinput now maintains a unicode sandwich

Videoplayer

  • [#1275] Fix looping

  • [#1823] Ensure vdeo is loaded before loading the state

Vkeyboard

  • [#958] Fix custom layout usage

  • [#1333] Don’t dispatch touch to other widgets while moving

  • [#1404] Introduce dual keyboard mode systemanddock`and `systemandmulti

  • Layout property can directly point to a JSON file name now

Widget

  • [#1209] Introduce disabled property

  • [#1452] Add children= argument to clear_widgets()

Platforms

RaspberryPi

  • [#1241] Fix installation of vidcore_lite for RPi

  • Add support for “relative” hid input as mouse

  • Fix configuration generation, and fix hidinput provider for multitouch hardware

  • Introduce new window provider specifically for RPi

Tools

  • [#1352] Improvements to highlighting file for emacs

  • [#1527, #1538] Move Kivy Garden to it’s own repository

  • [#1807] support for using hidinput to display mouse cursor

  • Make Garden Tool Python 3 compatible

Doc

  • Tons of doc fixes thanks to the awesome community

  • Special Thanks to ZenCODE for his awesome work on improving the doc

Examples

  • Various redesign, fixes and improvements making examples fit better on mobile

  • New Kivy Showcase, designed to fit much better on mobile devices

  • New Take Picture example to demonstrate how to use startActivtyForResult and how to get the result with python-for-android android.activity module

  • Rework compass example to work with py4a and remove all broken code

Unit Tests

  • [#1226] New test for testing unicode font names

  • [#1544] Add unit tests for Vector class

  • [#1828] Unicode Filechooser tests

  • [#823] Add test case for issue

  • Improve tests with new proxy_ref

  • Various tests introduced to test Python3 port

Packaging

  • Tons of fixes and new packages for Python 3

  • [#1540] Various fixes for Windows launcher

  • [#1599] Various fixes for installation on 32 bit Mac OSX

1.7.2 (Aug 4, 2013)

  • [#1270] Fix slowdown in graphics pipeline during gc

  • [#1253] Change Window.clearcolor to 0, 0, 0, 1

  • [#1311, #1269] 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

1.7.1 (May 28, 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

1.7.0 (May 13, 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!

1.6.0 (Mar 10, 2013)

Core

  • [#1001] Add justify support for text alignment

  • [#828] Fixed descriptor error in EventDispatcher.getattr

  • [#886] Fixes memory leak when log_enable = 0 in config

  • [#895] Fixes network image reloading

  • [#902] Fixes Python strings for 2.6

  • [#920] Fixes ImageIO crash if image cannot be loaded

  • [#985] 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

  • [#913] 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

  • [#863] Improve ListView usage with Kv language

  • [#865] New Bubble.limit_to for limiting the bubble position

  • [#868] Fixes Slider positioning when padding is used

  • [#883] Fixes empty markup rendering

  • [#916] Fixes cursor positionning in CodeInput

  • [#921] Fixes Scrollview scrolling with mousewheel if it’s disabled

  • [#928] Image log an error when an image cannot be loaded

  • [#937] Fixes BoxLayout.pos_hint for children

  • [#940] Enhance TextInput bubble for long-press and readonly

  • [#941] Fixes ProgressBar value boundaries

  • [#954] Fixes GridLayout children size_hint

  • [#959] Add ListAdapter.data property to allow changing the data

  • [#961] Fixes ScreenManager green color to black in ShaderTransition

  • [#966] New TextInput placeholder

  • [#989] 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 !

1.5.1 (Dec 13, 2012)

Widgets

  • [#847] Avoid to react on scrollleft/right on Button + FileChooser

Graphics

  • [#856] Fix Line instruction

Examples

  • [#848, #855] Fix Kivy catalog to work from a different cwd

1.5.0 (Dec 9, 2012)

Core

  • [#731] BoundedNumericProperty can have float bounds

  • [#755] Fix SetWindowLongPtr on 32/64 Windows

  • [#768] Fix AsyncImage loader on iOS

  • [#778] Prevent the Pygame parachute if we don’t have the required

GL version. Instead, show a msgbox. - [#779] Better DPI support, with new sp and dp units - [#783] New screen module for simulating different DPI devices - [#789] 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 window. - Normalize android pressure and radius - Reduce gstreamer audio/video out-of-sync - Support ability to stop/restart the EventLoop

Graphics

  • [#481] Avoid error in case of multiple Canvas.rremove()

  • [#610] Add more information when GLEW fail to initialize

  • [#671] Allow source unicode filename in BindTexture

  • [#790] Allow to change Stencil operators

  • Avoid BGRA-&gt;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

  • [#618] Raise exception if ScreenManager.start() is called twice

  • [#648] Avoid touch event propagation on ScreenManager transition

  • [#662] Enhance TextInput performance

  • [#706] Fix pos_hint Boxlayout calculation

  • [#725] Fix collapse management in Accordion

  • [#734] Fix widget opacity when passed in the constructor

  • [#736] Fix slider bug when min &lt; 0, max &lt; 0 and step &gt; 0

  • [#737] Better swipe gesture detection for Carousel

  • [#747] Honor index in Carousel.add_widget() (and Bubble)

  • [#750] New CodeInput widget

  • [#771] Dispatch modalview.on_open after animation

  • [#785] Allow event binding in Widget constructor

  • [#819] Fix canvas positioning when inserting at first position

  • [#824] Add top-to-bottom + right-to-left Stacklayout orientations.

  • [#832] Fix shorten routine

  • Automatically register new Widget classes in Factory

  • Enhance ScrollView scrolling

  • Fix Carousel API, containers are now hidden, and

slides/current_slide/previous_slide/next_slide are the user widgets. - Fix Label.color property for markup labels - Multiples fixes to TabbedPanel (tab_strip, unbind, tab selection)

Others

  • [#670] 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

1.4.1 (Sep 30, 2012)

Core

  • [#625] Extend NumericProperty to support DPI notation

  • [#660] Add callbacks support on ConfigParser for a (section, key)

  • [#666] Fix Markup text disapear on GL reloading

  • [#678] Enhance UrlRequest for small chunks, callbacks and GC

  • [#679] New Audio.get_pos()

  • [#680] Fix key translations on Keyboard

  • Force on_parent dispatching for children in a kv rule

  • Expose ‘app’ instance keyword in Kv language

Graphics

  • [#686] Added opacity support in the graphics pipeline

  • Enhanced Line instruction that support width, joint, cap.

  • Added Line.circle/ellipse/rectangle properties

Widgets

  • [#664] Fix TextInput crashes is some cases

  • [#686] New Widget.opacity property

  • [#690] New TextInput.background_normal/active

  • [#694] Fix Slider value when min and step &gt; 0

  • [#676] Fix Carousel.remove_widget()

  • [#669] Fix SettingNumeric with int/float values

  • [#698] Enhance BoxLayout to support pos_hint

  • Fix ModalView background property

Windows

  • [#675] Fix WM_Touch / WM_Pen for 32 bits / 64 bits

Others

  • [#462] Fixes gstreamer packaging with PyInstaller

  • [#659] Updated documentation concerning PyInstaller 2.0

1.4.0 (Sep 02, 2012)

Core

  • [#513] Fix nested template

  • [#547] Fix url loader with querystring

  • [#576] Markup text can be vertically aligned

  • [#585] Enhance add_widget() to raise an Exception on multiple parents

  • [#642] 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

  • [#516] Fix crash when loading 1bit image

  • [#546] Fix Quad() initialization

Widgets

  • [#543] Fix multiple content in TabbedPanel from Kv

  • [#549] Enhance TabbedPanel to introduce default_tab_class

  • [#562] Popup can now define the content in Kv

  • [#593] Enhance TextInput with select_all() and select_text() methods

  • [#658] 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

  • [#621] 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. Really, a ton.

1.3.0 (Jun 19, 2012)

Core

  • [#420] Fix pygame error when texture is too large

  • [#450] Updated Sound class to use Kivy properties

  • [#467] New Sound.length

  • [#484] New kivy.interactive module: doesn’t break REPL anymore

  • [#487] Make default values in properties optionals

  • [#489] Replaced all relative import with absolute imports

  • [#498] Fixes Image to allow re-loading of image from disk

  • [#503] Renamed unicode parameter to codepoint in all on_key_*

events - 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 flushing GL - New default UI theme - New KIVY_NO_CONFIG, KIVY_NO_FILELOG, KIVY_NO_CONSOLELOG env variables - New kivy.utils.escape_markup() to escape untrusted text when markup=True - Support MacOSX clipboard

Graphics

  • [#118] Fixes for glColorMask on android

  • [#447] Add new ClearColor and ClearBuffers instructions

  • [#463] Fixes glGetIntegerv with new Cython

  • [#479] Fixes for Translate instance when args passed in on

creation - Avoid drawing of empty VBO - Enhance Stencil instruction, you can nest up to 128 layers instead of 8 - 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

  • [#401] New Scatter.do_collide_after_children property

  • [#419] New TabbedPanel widget

  • [#437] New TextInput.readonly property

  • [#447] Fix popup background resizing when Window resize

  • [#480] Fixes StackLayout size_hint missing calculation

  • [#485] Fixes VideoPlayer scrollbar with multitouch

  • [#490] 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

videos - New Popup.dismiss(animation) attribute to disable the fadeout when dismiss - New RstDocument.goto(reference) for scrolling the document to a specific section - New Undo/Redo for TextInput

Android

  • Map BACK key to ESCAPE by default

  • Partial fixes for black screen after wake-up

Windows

  • Fixes preference order for the camera provider

  • Fixes some GL crash on Windows due to missing dynamic lookup of

some functions (glGenerateMipMap, glGenFramebuffers, …)

1.2.0 (Apr 2, 2012)

Core

  • [#325] New Window.mouse_pos to get the main mouse position anytime

  • [#427] 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 &lt; 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

  • [#415] Recorder now record keyboards events

  • [#309] Fixes for inspector / memory leak

  • New webdebugger module for having statistics on the current running app

Widget

  • [#331] New VideoPlayer widget: Video + controls buttons, annotations and

fullscreen - [#411] Propagate touchs to children for Label and Button - [#412] Removed redundant background_texture on Bubble - [#416] New background_color and foreground_color to TextInput - [#429] New password mode to TextInput - [#431] Fixes clipboard for linux, works perfect on linux, windows and mac - [#439] Improve performance on TextInput dealing with large text - Enhanced FileChooser to delay the file creation over the time, and display a progression bar if it’s too slow. - 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

  • [#405] New examples dealing with unicode

Others

  • [#404] Fixes for msvc9 compilation errors

  • [#424] Fixed pyinstaller packaging for macosx

  • Add installation instructions for mageia

  • New instructions for packaging on iOS

1.1.1 (Feb 15, 2012)

Core

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

1.1.0 (Feb 13, 2012)

Core

  • [#319] Allow dynamic changes to url in Loader

  • [#371] Allow BoundedNumericProperty to have custom min/max per widget

  • [#373] Allow Property.dispatch() to be called from Python

  • [#376] Fix list.reverse() in ListProperty

  • [#386] Fix GC with Clock triggered events

  • [#306] Fix video uri support with gstreamer

  • Add support for italic/bold text in core/text

  • Better traceback when an exception happen within kv

  • Enhance properties exceptions

  • Fixes for camera frame update

  • Fixes for python-for-android project

  • Fixes list/dict properties on pop/popitem method

  • Merged android-support branch to master

  • New Atlas class for merging png/jpeg and acces with atlas://

  • New SettingPath in settings

  • New markup text rendering: “[b]Hello[/b] [color=ff0000]World[/color]”

  • New on_pause handler in App: used in android for sleeping

  • Removed text/cairo rendering, ttf doesn’t work.

  • Various speedup on cython files

Graphics

  • [#375] Fix clear_color in Fbo

  • [#64] New Mesh instruction for custom 2D mesh

  • Fix black screenshot on GLES devices

  • Fix warnings of cython compilation + debian issues

Modules

  • [#389] Fix missing image for Touchring

  • New recorder module: you can save and replay touch events

Input

  • [#366] Fix time_end never set for all providers except mouse

  • [#377] Removed TUIO provider by default in configuration

Lang

  • [#364] Fixes for unicode BOM in .kv

  • Rewrite kvlang parser / builder: improved performance + fixes some design

issues.

Widget

  • [#317, #334, #335] Fix AsyncImage when source is empty or already loaded

  • [#318] Fix textinput auto scroll

  • [#386] Scatter will not accept touches if none of transformations are enabled

  • [#395] Enhance doc for label/textinput about unicode chars

  • Enhance FileChooser for feedback when item is selected

  • Enhance FileChooser to have a directory selection mode

  • Enhance Popup with more properties for styling

  • Fixes for Textinput focus

  • Fixes Layout when parent are changing

  • Fix for not propagating touch events in Popup

  • Fix Textinput with invalid selection when releasing shift key

  • New Bubble widget, for displaying contextual menu

  • New Copy/Cut/Paste menu in Textinput using Bubble

  • New RstDocument widget, for rendering RST text

Examples

  • New RST_Editor example for playing with RstDocument rendering

  • Various examples fixes due to new kv lang restrictions

Others

  • [#333] Fixes for allowing omnicompletion in vim

  • [#361, #379, #381 ,:repo:387] Lots of documentations fixes from contributors!

  • [#367] Fixes for pip+virtualenv installation

  • Fixes for pep8 and pyflakes

  • New architecture diagram

  • New documentation layout

  • New pong tutorial

  • Repository moved to github.com/kivy/kivy

1.0.9 (Nov 14, 2011)

Core

  • [#307] Fixes invalid video start (play=True)

  • [#308] Fixes memleak in gstreamer video providers

  • Enhance properties for introspection

  • Enhance Windows to use new Property from EventDispatcher

  • Fixes crash when text rendering is 0 width

  • Move properties discovery in EventDispatcher instead of Widget

Graphics

  • [#300] Use rgba mode for Line/Bezier dash mode

Modules

  • New inspector module (firebug like for Kivy)

Input

  • Disable mactouch input provider by default on OSX

Lang

  • [#293] Fixes multiline properties

Widget

  • [#287] Fixes invalid positioning of StackLayout with spacing

  • [#292] Fixes Image iteration when anim_delay=-1

  • [#303] Fixes for crash with ScrollView without viewport

  • Add visibility of minimum_width/height/size for TextInput

  • Fixes crash when text of textinput is None

Android

  • [#294] Fixes android package for Android SDK rev14

Examples

  • [#291] New Sequenced images examples

1.0.8 (Oct 24, 2011)

Core

  • [#205] Fixes invalid label rendering when text changes

  • [#212] Fixes asynchronous loader when pygame is used

  • [#216] Fixes window icon when filename for special charset

  • [#220] Add audio support for Android

  • [#221] Add video support for Android using ffmpeg-android project

  • [#240] Fixes modules usage on android (pyo/pyc are accepted)

  • Add kivy.resources.resource_remove_path

  • Enhance event dispatching

  • Enhance gobject support, reduced gstreamer lag

  • Enhance UrlRequest to report download progression

  • Fixes BoundedNumericProperty that wasn’t working anymore

  • Fixes configuration upgrade

  • New GIF support, or images inside ZIP files

  • New kivy.utils.format_bytes_to_human function

  • New kivy.utils.platform to determine on which platform we are

  • Rewrite video/gstreamer to use playbin2, no more issues with video/audio

Graphics

  • [#1] Add Bezier instruction

  • [#201] Fixes deletion of vbo/fbo that happen outside main context

  • [#207] Removed LineWidth instruction, wasn’t working at all

  • [#271] Fixes Line instruction crash when we have less than 2 x, y

  • Add Batch.clear_data

  • Enhance Bezier and Line to add a stipple mode

  • Enhance graphics compilation

  • Fixes for Ellipse angle_start/angle_end

Input

  • Enhance mouse provider to provide button index in touch event

Lang

  • [#227] Add Builder.unload_file() to remove kv definitions

  • Enhance lang by compile() part of the kv before eval/exec

Widget

  • [#206] Fixes video eos property

  • [#217] Fixes texture position when textinput widget is moving

  • [#224] Add scroll_timeout/distance/friction configuration

  • [#225] Allow stream url for Video widget

  • [#276] Fixes scrollview with grabbed touch

  • Add Button.background_color, Button.border

  • Enhance Widget to add property introspection

  • Fixes popup position when window size is changed

  • New Accordion widget

  • New Image.keep_ratio property

  • New native support for mousewheel in ScrollView

  • New ProgressBar widget

  • New VKeyboard widget

  • Fixes layout with conflicting usage of minimum_size and size_hint.

(Note: layout will not update its size if no size_hint are set.)

Examples

  • [#214] Add example of twister integration with kivy

  • Add FboFloatFayout widget to demonstrate how to optimize widget tree

  • New audio demo with 8bit sounds

  • New demo with custom shape and custom collision func

  • New Gesture example

Modules

  • Enhance touchring to support alpha and scale

Documentation

  • Lots of documentation fixes, typo, rewording…

  • Started translation for differents languages

  • Add easing images in animation

  • Add instructions about how to remove kivy

1.0.7 (Jul 16, 2011)

Announcement

Core

  • [#32] Implement window rotation (0,90,180,270)

  • [#150] Fix to prevent gcc bug on Mageia

  • [#153] Add packaging doc and hooks for Windows and MacOSX

  • [#155] Replaced import in class methods with late binding

  • [#157] Implement Label.valign support

  • [#166] Prevent to open too many fonts at the same time

  • [#184] Remove unlink() in properties, not needed anymore

  • [#186] Fixes extension support for MacOSX

  • Disable window resizing until we are OpenGL context resistant

  • Enhance extensions wizard and auto-created setup.py

  • Enhance pixels from pygame surface

  • Enhance properties list to prevent memory leak

  • Enhance properties to store data inside Widget class

  • Fixes for Audio class creation

  • Fixes for Clock dictionnary crashes

  • Fixes for volume usage on gstreamer video implementation

  • Fixes infinite loop when we hit max iteration

  • Fixes ordering of Window.add_widget

  • Fixes to avoid resync error with gstreamer

  • New DDS Image loader using new S3TC support

  • New DictProperty property

Graphics

  • [#27] Implement mipmap support

  • [#130] Implement caching for Shader source/compilation result

  • [#161] Prevent to upload texture twice when NPOT is supported

  • [#182] Fix Rotation.angle caching with degrees/radians

  • [#190] Fix crash when too many vertices are pushed in VBO

  • Enhance Ellipse to add angle_start/angle_end properties

  • Enhance GridLayout to have minimum and default size per col/row

  • Enhance logging of OpenGL capabilities

  • Enhance texture memory by using native NPOT if available

  • Enhance texture upload by using the best pixel packing

  • Fixes Color.hsv property crashes

  • Fixes for GLES2 by using GL_UNSIGNED_SHORT in VBO

  • Fixes some typo on OpenGL wrapper

  • New $HEADER$ token that can be used in fragment/vertex shader code

  • New OpenGL Utils module for checking texture capabilities and others

  • New S3TC texture support

  • New Texture.colorfmt property

Input

  • Enhance Wacom support on linux platform

  • Fix leak/slowdown in MouseMotionEvent

Lang

  • [#189] Fixes for not allowing dot in properties name

  • Concat property value when the value is shifted to one level

  • Enhance key resolution ([x for x in list] can be used now.)

  • Enhance module/class resolution at import

Widget

  • [#139] Add TreeView.remove_node()

  • [#143] Fix crash when group is changing on ToggleButton

  • [#146] Fix invalid calculation for Image.norm_image_size

  • [#152] Fix Camera.play property

  • [#160] Prevent label creation until text is set

  • [#178] Set default values only on properties

  • Enhance ScrollView to have kind of kinetic movement

  • Fixes calculation of Stacklayout.size with padding

  • Fixes FloatLayout relayout when children size* is changing

  • Fixes for initial Label.font_name assignement

  • Fixes to prevent call of on_release twice

  • Fix ScrollView with grab events

  • New Image.allow_stretch property

  • New Popup (modal popup) widget

  • New Settings widget

  • New Switch widget

  • New Widget.uid property

Examples

  • New tiny shader editor demo

Documentation

  • [#17] Enhance all cythonized classes documentation

  • [#84] Add previous/next link in the bottom of the documentation

  • [#153] Enhance Environment documentation

  • [#159] Remove warning on unimplemented Template in lang

  • [#191] Fix logo link to go to http://kivy.org/

  • [#192] Add PDF download link in sidebar

  • Added vim highlighter

  • Enhanced documentation widget with images

  • Enhance OpenGL wrapper documentation with Kronos website links

  • Rework documentation for Graphics part

  • Several typo fixes

1.0.6 (May 3, 2011)

Announcement

Core

  • [#109] Logger write stderr to his file now

  • [#113] Support window resizing

  • [#115] Correctly parse ‘OpenGL ES 2.0’ now

  • [#62] Add kv_directory to load kv from another directory in App

  • [#66] Take care of dependencies for Makefile and setup.py

  • Bump initial width/height to 800x600

  • Fix test of callback for Clock.unschedule

  • Speedup logger trace call using __debug__

  • Speedup Widget creation by caching properties attributes

Graphics

  • [#129] Fixes stencil usage in another stencil

  • [#28] Fixes to enable canvas drawing only when something changes

  • Allow to retrigger event inside a callback in Clock

  • Fixes in Fbo to not create Fbo with depthbuffer by default

  • Fixes in shader to prevent too much name lookup with matrix

  • Fixes memory leak and use __dealloc__ instead of __del__ in python

  • Fixes to reduce OpenGL call (test down from 644 to 495 gl call)

  • Fixes to reduce python overhead in Shader

  • Fixes to use trigger for releasing texture

Input

  • [#132] Fixes for WM_Touch

Lang

  • [#131] Allow the usage of “id” in template

  • Add #:set <key> <expr> directive, can be used for global const

  • Better exception when a class cannot be instanciate in Kv lang

Widget

  • [#107] Fixes for win32/shortcuts textinput widget

  • [#116] Fixes in filechooser to avoid crashing on unreadable dir

  • Add “color” property for Image, to tint the source image

  • Change “orientation” for Stacklayout + implement lr-tb, tb-lr

  • Fixes FloatLayout for handling child’s position changes

  • Fixes for stacklayout calculation when padding is used

  • Fixes for usage of minimum_size in layout

  • Fixes for win32 platform in filechooser

Examples

  • Add Scatter examples in showcase

  • Rework demos to have the same background + icon + title bar

Documentation

  • [#122, #136] Add missing documentation for treeview, allownone

  • [#124] Add send-to method for starting kivy app on Windows

  • [#126] Cleanup old documentation

  • [#127] Add jinja2 as deps for android

  • Add “Designing with kv” in user guide

  • Add instructions for packaging app on Android

  • Fixes on_touch_down in architecture documentation

Windows platform

  • [#137] Improve kivy.bat to execute kivy file or cmd (thx remip)

  • Add win32file as a dependency, needed for filechooser

Android platform

  • [#119] Move configuration into the directory of the application

  • [#121] Fixes for black screen on some device at start

  • [#128] Fixes to not handle input before application start

  • [#134] Fixes to correctly show splashscreen

  • Avoid the dispatch of touches if they don’t move

  • Support of {request,release}_keyboard on Window

  • Temporary disable glColorMask call for android,

unexpected crash happen in the internals of android gl

1.0.5 (April 16, 2011)

Announcement

Core

  • [#106] New title/icon properties in App class to set title/icon

of the Windows - [#92] Fixes to detect recursion in Kivy language - [#52] Update Kivy icon for 512, 256, 128, 64, 32 pixels size - [#49, #41] Add videocapture support for Windows platform - [#17] New template support in Kivy language - [#6] New lang directive: #:import <alias> <package> - Clean setup.py and update packages - Disable gstreamer/camera on Mac OSX - Enhance and speedup Clock internals - Enhance properties exception message with its name - Fixes for logger with ascii/unicore - Fixes for OpenCV Camera provider on Mac OSX - Fixes many part of lang / widget related to properties - Fixes python path on Mac OSX - Fixes to support jpeg extension in Pygame image loader - Fixes to support only extensions with read support in PIL image loader - New -c/–config section:key:value to change the configuration - New Clock.create_trigger (replace unschedule/schedule_once) - New exception if Python 32 bits is used on Mac OSX - New extensions system (experimental) - Removed kivy.utils.curry, use functools.partial instead.

Graphics

  • [#89] Add documentation for Color class

  • Fixes for bgr-&gt;rgb conversion

  • Fixes for matrix multiplication order and matrix internals

Input

  • [#87] Fix retaintouch postproc

  • Fixes for the mouse provider using disable_on_activity

Widget

  • [#40] Fixes for scatter.[center_x, center_y, top, right]

  • [#47] Fixes for scatter usage inside scatter

  • [#79] Correctly update child when size_hint/pos_hint is updated

  • [#94] Fixes graphicals glitch when using Layout*

  • Clean hacks for add_widget/remove_widget in Widget

  • Fixes for correctly honnor Scatter.do_scale

  • Fixes for ScrollView.scroll_timeout

  • New alternating line colors for TreeView

  • New FileChooser widget (experimental)

  • New on_text_validate event for TextInput

  • New shorten property for Label

  • New StackLayout widget (experimental)

Documentation

  • [#69, #88] Fix ubuntu installation and installation execution

  • [#86] New FAQ entry: pip installation failed

  • [#98] New FAQ entry: undefined symbol: glGenerateMipmap

  • Reword kivy language API

1.0.4-beta (March 20, 2011)

Announcement

Core

  • [#70] Fixes for video_gstreamer to prevent memory leak

  • [#78] Fixes for ListProperty: correctly observe inplace changes

  • New Window.request_keyboard / Window.release_keyboard

  • New kv lang callback: <event> or on_<propname> will be binded

as a callback of the widget - Fixes for 1 sec video/audio delay issue - Fixes to allow Animation on a subset of a dict - Fixes to make AliasProperty.dispatch working properly - Fixes for kv lang to correctly inherith rules from an Widget with multiples bases - Fixes on App to add the root widget before dispatching on_start

Graphics

  • [#76, #77] Fixes to prevent blank screen

  • Fixes for glReadPixels to prevent reading outside the bounds

  • New BindTexture.index to allow binding on another unit

  • New Callback() instruction, to call a Python func

  • New Canvas.ask_update() to force update of the Canvas

  • New minimal opengl version check

  • New StencilPush, StencilUse, StencilPop instructions

  • Rework and speedup Buffer/VBO internals

Input

  • Fixes for dejitter postproc

Widget

  • [#71] Fix Image ratio calculation

  • [#74] New GridLayout widget

  • [#75] Fix Label.font_color

  • Fixes for Video.volume to make it work

  • Fixes in BoxLayout

  • Fixes Label.font_name attribute to use resource_find()

  • New ScrollView widget

  • New TextInput widget

  • New TreeView widget

  • New Label.text_size: control the size of the text texture

  • New Video.eos property: control if the video should be

paused or loop at the end

Examples

  • New demo/pictures example (photo viewer)

  • New kinect example (linux only, need libfreenect)

  • New widgets/stencilcanvas example

  • New widgets/videoplayer example

  • Updated demo/showcase to use TreeView

Documentation

  • New PDF version of the documentation, generated with buildbot

and published at http://kivy.org/docs/pdf/Kivy-latest.pdf - New “Your First Widget” section in the Programming Guide - Severals part of the documentation have been fixed and reworded

Others

  • [#81] Add missing gstreamer binaries to the Windows build

  • [#82] Fixes to remove all unused and obsolete modules

  • New OpenGL debug compilation now print arguments

  • Fixes for opengl debug compilation on MacOSX

  • Fixes for Windows crash if the icon is not found

  • Fixes for Windows glitch on touchtracer

1.0.3-alpha (Feb 22, 2011)

Announcement

Core

  • [#34] Fixes lang for invalid detection of floating number

  • [#45] New clearcolor property in Window

  • [#55] New CMD+Q and CMD+W support in OSX

  • [#61] ListProperty is now able to observe inplace changes

  • [#63] Fixes for PIL loader

  • Fixes for AliasProperty: dispatch the observer set return True

  • Fixes for Camera and Video, reporting an error with Texture

  • Fixes on Window dispatch on_close event when the window is closed

  • Fixes to use the user canvas if it’s set

  • New Clock.get_boottime()

  • New kivy.tools.report tools, can be used for debugging install

  • Removed old attributes in Label

  • Removed setuptools and nose dependencies in setup.py

Graphics

  • [#46] No more glitch when the Label have no text

  • [#56, #44] Fixes for adding/removing BindTexture automatically

  • [#57] Texture min/mag_filter and wrap are string, not gl const

  • Canvas.clear() don’t clear before and after context now

  • New error checking for Shader compilation and linking

  • New RenderContext.shader to access on internal shader class

  • New Shader fs, vs and success to change glsl source code

  • Reduce shader header, and removing unused varying + uniform

Input

  • [#59] Fixes for Tuio, 2Dcur wasn’t accepted as a Touch

Widget

  • New center_x, center_y value for Widget.pos_hint

  • New design (button, slider and fonts)

Examples

  • Add shader/plasma.py for an example of custom shader usage

  • Add shader/treeshader.py for an example of custom shader for

widget rendering.

Documentation

  • Various fixes everywhere

  • Add working devices for android

  • Add a section about how to report an issue

Android

  • Fix crash for devices with more than 4 touches

Others

  • [#50] Versionning portable-deps for OSX

  • Add unit tests for Point and Ellipse

  • New keybinding module, with only F12 to take screenshot

1.0.2-alpha (Feb 10, 2011)

Announcement

Core

  • New kivy.require() method to require a minimum kivy version

  • New App.stop() method

  • [#22] Autodetection of GLES2 support

  • Speedup Kivy language callbacks

  • Reduce text memory footprint using new luminance_alpha format

  • Remove old vsync/fps token in Configuration, use maxfps.

  • FPS is limited to 60 by default now.

  • Fixes for pip installer

Graphics

  • New Ellipse.segments property

  • Support of luminance + luminance_alpha color format in texture

  • Speedup of internals classes (VBO, VertexBatch, Buffer)

  • [#42, #48] Fixes and activate graphics compiler

  • Fixes compilation for Linux + ATI card

Documentation

  • [#54] Enhance Vector documentation

  • Installation for Windows, MacOSX, Linux and Android

  • Fixes Quickstart

Widgets

  • New layouts: FloatLayout, GridLayout and AnchorLayout

Examples

  • Fixes for touchtracer to make it run on android

Android

  • Initial release of Android Kivy launcher.

  • You need Android 2.2 + OpenGL ES 2.0 support

  • Tested on Motorola Droid 1, Motorola Droid 2, Samsung Galaxy Tab,

Xperia 10.

1.0.0 (Feb 1, 2011)

Announcement

  • Running on Windows, MacOSX, Linux and Android

  • Same application code for all platforms

  • Graphics API on top of OpenGL ES 2.0

  • Uniform access to Audio, Camera, Video, Text rendering, Spelling

  • Native input support: Tuio, WM_Touch, MacOSX MT, mtdev, wacom…

  • Multitouch widgets: Label, Button, Image, Scatter, Video, Camera…

  • Stable and documented API

  • Extensive documentation at http://kivy.org/docs/

  • Continuous integration via buildbot (coverage and gl unit tests)